Compare commits

..

25 Commits

Author SHA1 Message Date
zyphlar
b04333d790 Add poly/bin border editing instructions
Signed-off-by: zyphlar <zyphlar@gmail.com>
2026-01-15 13:30:13 -08:00
Yannik Bloscheck
4a64bf05be [ios] Add missing speedcamera icon version
Signed-off-by: Yannik Bloscheck <git@yannikbloscheck.com>
2026-01-07 12:28:51 +01:00
Dobri Dabar
381c1e3979 [desktop] Added Local Language option
Signed-off-by: Dobri Dabar <dobridabar@noreply.codeberg.org>
2026-01-07 12:12:32 +01:00
Chris H. Meyer
aa9ee3cbbf [styles] Add tactile maps
Signed-off-by: Chris H. Meyer <christian.h.meyer@t-online.de>
2026-01-07 11:02:50 +01:00
matheusgomesms
20d9185c79 Removing maxspeed estimate from generator
Signed-off-by: matheusgomesms <matheusgomesms@noreply.codeberg.org>
2026-01-06 14:54:00 +01:00
Chris H. Meyer
90c18f4983 [types] Add miniature railway
Signed-off-by: Chris H. Meyer <christian.h.meyer@t-online.de>
2026-01-06 14:47:40 +01:00
Viktor Govako
fe5d4f5286 [classifier] Added railway=miniature.
Signed-off-by: Viktor Govako <viktor.govako@gmail.com>
Co-authored-by: Chris H. Meyer <christian.h.meyer@t-online.de>
2026-01-06 14:47:40 +01:00
Yannik Bloscheck
13d7def519 [ios] Fix file path
Signed-off-by: Yannik Bloscheck <git@yannikbloscheck.com>
2026-01-06 00:31:44 +01:00
Chris H. Meyer
93b35454eb [styles] Fix missing comma
Signed-off-by: Chris H. Meyer <christian.h.meyer@t-online.de>
2026-01-05 18:26:16 +01:00
Chris H. Meyer
de1c0a061d [styles] Set text color of fortress and other castles
Signed-off-by: Chris H. Meyer <christian.h.meyer@t-online.de>
2026-01-05 18:24:48 +01:00
gedankenstuecke
18ce55afa3 incorp review feedback 2026-01-05 13:27:42 +01:00
gedankenstuecke
43ffd199a4 [docs] Update CB teams description
Keeps the docs up to date on the currently existing teams

Signed-off-by: gedankenstuecke <gedankenstuecke@noreply.codeberg.org>
2026-01-05 13:23:29 +01:00
thesupertechie
3e75e5e802 [core] Add Tamil TTS support
This PR adds TTS voice instruction support for the Tamil language.

Co-authored-by: thesupertechie <thesupertechie1@gmail.com>
Co-committed-by: thesupertechie <thesupertechie1@gmail.com>
2026-01-05 10:42:53 +01:00
Jean-Baptiste
fc96d17ed7 [android] Remove background apply on item phone view
Signed-off-by: Jean-Baptiste <jeanbaptiste.charron@outlook.fr>
2026-01-04 19:33:18 +01:00
Jean-Baptiste
e869fe1da1 [android] Fix custom dialog styles
Signed-off-by: Jean-Baptiste <jeanbaptiste.charron@outlook.fr>
2026-01-04 19:32:11 +01:00
matheusgomesms
f38953458d [ios] Fix project.pbxproj
Signed-off-by: matheusgomesms <matheusgomesms@noreply.codeberg.org>
Co-authored-by: matheusgomesms <matheusgomesms@noreply.codeberg.org>
Co-committed-by: matheusgomesms <matheusgomesms@noreply.codeberg.org>
2026-01-04 19:31:56 +01:00
Jean-Baptiste
5e8d2e1a59 [android] Use Material Cardview foreach item phone
Signed-off-by: Jean-Baptiste <jeanbaptiste.charron@outlook.fr>
2026-01-03 22:53:00 +01:00
Jean-Baptiste
07e42c0626 [android] Add comment about issues with Material library
Signed-off-by: Jean-Baptiste <jeanbaptiste.charron@outlook.fr>
2026-01-03 22:43:15 +01:00
Jean-Baptiste
14e45aa6db [android] Use Material 3 alert dialogs
Signed-off-by: Jean-Baptiste <jeanbaptiste.charron@outlook.fr>
2026-01-03 22:34:15 +01:00
Jean-Baptiste
8bd7f9d59a [android] Use M3 dark background in the app
Signed-off-by: Jean-Baptiste <jeanbaptiste.charron@outlook.fr>
2026-01-03 22:32:51 +01:00
Radek Olsak
ead092af79 [desktop] Added Void dependencies
Signed-off-by: Radek Olsak <radek@olsak.net>
2026-01-03 22:25:36 +01:00
Chris H. Meyer
c3f5986f12 [styles] render man_made=wastewater_plant like landuse=industrial
Signed-off-by: Chris H. Meyer <christian.h.meyer@t-online.de>
2026-01-03 22:24:11 +01:00
Jean-Baptiste
143e0562e6 [android] Remove stroke border on cardview in navigation view
Signed-off-by: Jean-Baptiste <jeanbaptiste.charron@outlook.fr>
2026-01-03 22:22:09 +01:00
Konstantin Pastbin
89cfc6f8e6 [search] Enable Lithuanian for search categories/synonyms
Signed-off-by: Konstantin Pastbin <konstantin.pastbin@gmail.com>
2026-01-03 21:13:45 +01:00
Jean-Baptiste
4788956720 [android] Simplify some views to improve performance
Signed-off-by: Jean-Baptiste <jeanbaptiste.charron@outlook.fr>
2026-01-03 20:50:11 +01:00
128 changed files with 2883 additions and 2958 deletions

View File

@@ -352,6 +352,7 @@ dependencies {
implementation libs.androidx.work.runtime
implementation libs.androidx.lifecycle.process
implementation libs.androidx.documentfile
// 1.13 Material library version doesn't render properly alpha properties on map buttons
implementation libs.android.material
// Fix for app/organicmaps/util/FileUploadWorker.java:14: error: cannot access ListenableFuture
// https://github.com/organicmaps/organicmaps/issues/6106

View File

@@ -446,7 +446,7 @@ public class DownloadResourcesLegacyActivity extends BaseMwmFragmentActivity
default -> throw new AssertionError("Unexpected result code = " + result);
};
mAlertDialog = new MaterialAlertDialogBuilder(this, R.style.MwmTheme_AlertDialog)
mAlertDialog = new MaterialAlertDialogBuilder(this)
.setTitle(titleId)
.setMessage(messageId)
.setCancelable(true)

View File

@@ -9,8 +9,7 @@ import static app.organicmaps.leftbutton.LeftButtonsHolder.BUTTON_HELP_CODE;
import static app.organicmaps.leftbutton.LeftButtonsHolder.BUTTON_RECORD_TRACK_CODE;
import static app.organicmaps.leftbutton.LeftButtonsHolder.BUTTON_SETTINGS_CODE;
import static app.organicmaps.sdk.location.LocationState.FOLLOW;
import static app.organicmaps.sdk.location.LocationState.FOLLOW_AND_ROTATE_COMPASS;
import static app.organicmaps.sdk.location.LocationState.FOLLOW_AND_ROTATE_ROUTE;
import static app.organicmaps.sdk.location.LocationState.FOLLOW_AND_ROTATE;
import static app.organicmaps.sdk.location.LocationState.LOCATION_TAG;
import static app.organicmaps.sdk.util.PowerManagment.POWER_MANAGEMENT_TAG;
import static app.organicmaps.sdk.util.Utils.dimen;
@@ -433,7 +432,7 @@ public class MwmActivity extends BaseMwmFragmentActivity
}
dismissLocationErrorDialog();
mLocationErrorDialog = new MaterialAlertDialogBuilder(MwmActivity.this, R.style.MwmTheme_AlertDialog)
mLocationErrorDialog = new MaterialAlertDialogBuilder(MwmActivity.this)
.setMessage(R.string.unknown_current_position)
.setCancelable(true)
.setPositiveButton(R.string.ok, null)
@@ -656,7 +655,7 @@ public class MwmActivity extends BaseMwmFragmentActivity
else
{
dismissAlertDialog();
mAlertDialog = new MaterialAlertDialogBuilder(this, R.style.MwmTheme_AlertDialog)
mAlertDialog = new MaterialAlertDialogBuilder(this)
.setTitle(R.string.message_invalid_feature_position)
.setPositiveButton(R.string.ok, null)
.setOnDismissListener(dialog -> mAlertDialog = null)
@@ -1156,7 +1155,7 @@ public class MwmActivity extends BaseMwmFragmentActivity
if (type == IsolinesState.EXPIREDDATA)
{
mAlertDialog = new MaterialAlertDialogBuilder(this, R.style.MwmTheme_AlertDialog)
mAlertDialog = new MaterialAlertDialogBuilder(this)
.setTitle(R.string.downloader_update_maps)
.setMessage(R.string.isolines_activation_error_dialog)
.setPositiveButton(
@@ -1775,7 +1774,7 @@ public class MwmActivity extends BaseMwmFragmentActivity
{
dismissAlertDialog();
mAlertDialog =
new MaterialAlertDialogBuilder(this, R.style.MwmTheme_AlertDialog)
new MaterialAlertDialogBuilder(this)
.setTitle(R.string.unable_to_calc_alert_title)
.setMessage(R.string.unable_to_calc_alert_subtitle)
.setPositiveButton(R.string.settings,
@@ -1798,7 +1797,7 @@ public class MwmActivity extends BaseMwmFragmentActivity
builder.append(getString(resId)).append("\n\n");
dismissAlertDialog();
mAlertDialog = new MaterialAlertDialogBuilder(this, R.style.MwmTheme_AlertDialog)
mAlertDialog = new MaterialAlertDialogBuilder(this)
.setTitle(R.string.dialog_routing_disclaimer_title)
.setMessage(builder.toString())
.setCancelable(false)
@@ -1847,7 +1846,7 @@ public class MwmActivity extends BaseMwmFragmentActivity
return true;
final MapObject endPoint = Objects.requireNonNull(controller.getEndPoint());
final MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(this, R.style.MwmTheme_AlertDialog)
final MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(this)
.setTitle(R.string.p2p_only_from_current)
.setMessage(R.string.p2p_reroute_from_current)
.setCancelable(false)
@@ -1901,8 +1900,7 @@ public class MwmActivity extends BaseMwmFragmentActivity
locationHelper.restartWithNewMode();
if ((newMode == FOLLOW || newMode == FOLLOW_AND_ROTATE_ROUTE || newMode == FOLLOW_AND_ROTATE_COMPASS)
&& !LocationUtils.checkFineLocationPermission(this))
if ((newMode == FOLLOW || newMode == FOLLOW_AND_ROTATE) && !LocationUtils.checkFineLocationPermission(this))
{
// Try to optimistically request FINE permission for FOLLOW and FOLLOW_AND_ROTATE modes.
Logger.i(LOCATION_TAG, "Requesting ACCESS_FINE_LOCATION permission for " + LocationState.nameOf(newMode));
@@ -2042,7 +2040,7 @@ public class MwmActivity extends BaseMwmFragmentActivity
{
mPreciseLocationDialogShown = true;
final MaterialAlertDialogBuilder builder =
new MaterialAlertDialogBuilder(this, R.style.MwmTheme_AlertDialog)
new MaterialAlertDialogBuilder(this)
.setTitle("" + getString(R.string.limited_accuracy))
.setMessage(R.string.precise_location_is_disabled_long_text)
.setNegativeButton(R.string.close, (dialog, which) -> dialog.dismiss())
@@ -2076,7 +2074,7 @@ public class MwmActivity extends BaseMwmFragmentActivity
return;
}
mLocationErrorDialog = new MaterialAlertDialogBuilder(this, R.style.MwmTheme_AlertDialog)
mLocationErrorDialog = new MaterialAlertDialogBuilder(this)
.setTitle(R.string.enable_location_services)
.setMessage(R.string.location_is_disabled_long_text)
.setOnDismissListener(dialog -> mLocationErrorDialog = null)
@@ -2169,7 +2167,7 @@ public class MwmActivity extends BaseMwmFragmentActivity
return;
}
final MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(this, R.style.MwmTheme_AlertDialog)
final MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(this)
.setTitle(R.string.enable_location_services)
.setMessage(R.string.location_is_disabled_long_text)
.setOnDismissListener(dialog -> mLocationErrorDialog = null)
@@ -2255,7 +2253,7 @@ public class MwmActivity extends BaseMwmFragmentActivity
dismissAlertDialog();
final MaterialAlertDialogBuilder builder =
new MaterialAlertDialogBuilder(this, R.style.MwmTheme_AlertDialog)
new MaterialAlertDialogBuilder(this)
.setTitle(R.string.current_location_unknown_error_title)
.setCancelable(true)
.setMessage(R.string.power_save_dialog_summary)
@@ -2280,7 +2278,7 @@ public class MwmActivity extends BaseMwmFragmentActivity
{
dismissAlertDialog();
mAlertDialog =
new MaterialAlertDialogBuilder(this, R.style.MwmTheme_AlertDialog)
new MaterialAlertDialogBuilder(this)
.setTitle(R.string.load_kmz_title)
.setMessage(getString(R.string.unknown_file_type, uri))
.setPositiveButton(R.string.ok, null)
@@ -2297,7 +2295,7 @@ public class MwmActivity extends BaseMwmFragmentActivity
{
dismissAlertDialog();
mAlertDialog =
new MaterialAlertDialogBuilder(this, R.style.MwmTheme_AlertDialog)
new MaterialAlertDialogBuilder(this)
.setTitle(R.string.load_kmz_title)
.setMessage(getString(R.string.failed_to_open_file, uri, error))
.setPositiveButton(R.string.ok, null)
@@ -2319,7 +2317,7 @@ public class MwmActivity extends BaseMwmFragmentActivity
public void onBookmarksFileImportFailed()
{
dismissAlertDialog();
mAlertDialog = new MaterialAlertDialogBuilder(this, R.style.MwmTheme_AlertDialog)
mAlertDialog = new MaterialAlertDialogBuilder(this)
.setTitle(R.string.load_kmz_title)
.setMessage(R.string.load_kmz_failed)
.setPositiveButton(R.string.ok, null)
@@ -2580,7 +2578,7 @@ public class MwmActivity extends BaseMwmFragmentActivity
private void reportUnsupported()
{
new MaterialAlertDialogBuilder(this, R.style.MwmTheme_AlertDialog)
new MaterialAlertDialogBuilder(this)
.setMessage(R.string.unsupported_phone)
.setCancelable(false)
.setPositiveButton(R.string.close, (dlg, which) -> this.moveTaskToBack(true))

View File

@@ -120,7 +120,7 @@ public class SplashActivity extends AppCompatActivity
private void showFatalErrorDialog(@StringRes int titleId, @StringRes int messageId, Exception error)
{
mCanceled = true;
new MaterialAlertDialogBuilder(this, R.style.MwmTheme_AlertDialog)
new MaterialAlertDialogBuilder(this, R.style.MwmTheme_M3_AlertDialog)
.setTitle(titleId)
.setMessage(messageId)
.setPositiveButton(

View File

@@ -60,14 +60,14 @@ public enum BookmarksSharingHelper
case BookmarkSharingResult.SUCCESS ->
SharingUtils.shareBookmarkFile(context, launcher, result.getSharingPath(), result.getMimeType());
case BookmarkSharingResult.EMPTY_CATEGORY ->
new MaterialAlertDialogBuilder(context, R.style.MwmTheme_AlertDialog)
new MaterialAlertDialogBuilder(context)
.setTitle(R.string.bookmarks_error_title_share_empty)
.setMessage(R.string.bookmarks_error_message_share_empty)
.setPositiveButton(R.string.ok, null)
.show();
case BookmarkSharingResult.ARCHIVE_ERROR, BookmarkSharingResult.FILE_ERROR ->
{
new MaterialAlertDialogBuilder(context, R.style.MwmTheme_AlertDialog)
new MaterialAlertDialogBuilder(context)
.setTitle(R.string.dialog_routing_system_error)
.setMessage(R.string.bookmarks_error_message_share_general)
.setPositiveButton(R.string.ok, null)

View File

@@ -42,6 +42,7 @@ public class ChooseBookmarkCategoryFragment
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
View root = inflater.inflate(R.layout.choose_bookmark_category_fragment, container, false);
getDialog().getWindow().setBackgroundDrawableResource(android.R.color.transparent);
mRecycler = root.findViewById(R.id.recycler);
mRecycler.setLayoutManager(new LinearLayoutManager(requireActivity()));
return root;

View File

@@ -77,6 +77,7 @@ public class ChooseBookmarksSortingTypeFragment
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState)
{
super.onViewCreated(view, savedInstanceState);
getDialog().getWindow().setBackgroundDrawableResource(android.R.color.transparent);
final Bundle args = getArguments();
if (args == null)

View File

@@ -183,16 +183,11 @@ public final class UiHelpers
drawableRes = R.drawable.ic_follow;
tintColor = Colors.LOCATION_TINT;
}
case LocationState.FOLLOW_AND_ROTATE_COMPASS ->
case LocationState.FOLLOW_AND_ROTATE ->
{
drawableRes = R.drawable.ic_follow_and_rotate;
tintColor = Colors.LOCATION_TINT;
}
case LocationState.FOLLOW_AND_ROTATE_ROUTE ->
{
drawableRes = R.drawable.ic_follow_route;
tintColor = Colors.LOCATION_TINT;
}
default -> throw new IllegalArgumentException("Invalid button mode: " + locationMode);
}

View File

@@ -42,7 +42,7 @@ public final class CustomMapServerDialog
edit.setText(current);
MaterialAlertDialogBuilder builder =
new MaterialAlertDialogBuilder(context, R.style.MwmTheme_AlertDialog)
new MaterialAlertDialogBuilder(context)
.setTitle(R.string.download_resources_custom_url_title)
.setMessage(R.string.download_resources_custom_url_message)
.setView(dialogView)

View File

@@ -113,7 +113,7 @@ public class EditTextDialogFragment extends BaseMwmDialogFragment
negativeButtonText = args.getString(ARG_NEGATIVE_BUTTON);
}
AlertDialog editTextDialog = new MaterialAlertDialogBuilder(requireActivity(), R.style.MwmTheme_AlertDialog)
AlertDialog editTextDialog = new MaterialAlertDialogBuilder(requireActivity())
.setView(buildView())
.setNegativeButton(negativeButtonText, null)
.setPositiveButton(positiveButtonText, null)

View File

@@ -119,7 +119,7 @@ class DownloaderAdapter extends RecyclerView.Adapter<DownloaderAdapter.ViewHolde
{
if (RoutingController.get().isNavigating())
{
new MaterialAlertDialogBuilder(adapter.mActivity, R.style.MwmTheme_AlertDialog)
new MaterialAlertDialogBuilder(adapter.mActivity)
.setTitle(R.string.downloader_delete_map)
.setMessage(R.string.downloader_delete_map_while_routing_dialog)
.setPositiveButton(R.string.ok, null)
@@ -133,7 +133,7 @@ class DownloaderAdapter extends RecyclerView.Adapter<DownloaderAdapter.ViewHolde
return;
}
new MaterialAlertDialogBuilder(adapter.mActivity, R.style.MwmTheme_AlertDialog)
new MaterialAlertDialogBuilder(adapter.mActivity)
.setTitle(R.string.downloader_delete_map)
.setMessage(R.string.downloader_delete_map_dialog)
.setNegativeButton(R.string.cancel, null)

View File

@@ -49,7 +49,7 @@ public class MapManagerHelper
return;
}
final AlertDialog dlg = new MaterialAlertDialogBuilder(activity, R.style.MwmTheme_AlertDialog)
final AlertDialog dlg = new MaterialAlertDialogBuilder(activity)
.setTitle(R.string.country_status_download_failed)
.setMessage(getErrorCodeStrRes(errorData.errorCode))
.setNegativeButton(R.string.cancel,
@@ -72,7 +72,7 @@ public class MapManagerHelper
private static void notifyNoSpaceInternal(Activity activity)
{
new MaterialAlertDialogBuilder(activity, R.style.MwmTheme_AlertDialog)
new MaterialAlertDialogBuilder(activity)
.setTitle(R.string.downloader_no_space_title)
.setMessage(R.string.downloader_no_space_message)
.setPositiveButton(android.R.string.ok, null)
@@ -123,7 +123,7 @@ public class MapManagerHelper
return false;
}
new MaterialAlertDialogBuilder(activity, R.style.MwmTheme_AlertDialog)
new MaterialAlertDialogBuilder(activity)
.setTitle(R.string.download_over_mobile_header)
.setMessage(R.string.download_over_mobile_message)
.setNegativeButton(R.string.cancel, null)

View File

@@ -493,7 +493,7 @@ public class EditorFragment extends BaseMwmFragment implements View.OnClickListe
}
});
return new MaterialAlertDialogBuilder(requireActivity(), R.style.MwmTheme_AlertDialog)
return new MaterialAlertDialogBuilder(requireActivity())
.setTitle(R.string.editor_socket)
.setView(dialogView)
.setPositiveButton(R.string.save,
@@ -997,7 +997,7 @@ public class EditorFragment extends BaseMwmFragment implements View.OnClickListe
message = R.string.editor_reset_edits_message;
}
new MaterialAlertDialogBuilder(requireActivity(), R.style.MwmTheme_AlertDialog)
new MaterialAlertDialogBuilder(requireActivity())
.setTitle(message)
.setPositiveButton(title,
(dialog, which) -> {
@@ -1020,7 +1020,7 @@ public class EditorFragment extends BaseMwmFragment implements View.OnClickListe
private void placeDisused()
{
new MaterialAlertDialogBuilder(requireActivity(), R.style.MwmTheme_AlertDialog)
new MaterialAlertDialogBuilder(requireActivity())
.setTitle(R.string.editor_mark_business_vacant_title)
.setMessage(R.string.editor_mark_business_vacant_description)
.setPositiveButton(R.string.editor_submit, (dlg, which) -> {

View File

@@ -352,7 +352,7 @@ public class EditorHostFragment
private void processNoFeatures()
{
new MaterialAlertDialogBuilder(requireActivity(), R.style.MwmTheme_AlertDialog)
new MaterialAlertDialogBuilder(requireActivity())
.setTitle(R.string.downloader_no_space_title)
.setPositiveButton(R.string.ok, null)
.show();
@@ -386,7 +386,7 @@ public class EditorHostFragment
private void showNoobDialog()
{
new MaterialAlertDialogBuilder(requireActivity(), R.style.MwmTheme_AlertDialog)
new MaterialAlertDialogBuilder(requireActivity())
.setTitle(R.string.editor_share_to_all_dialog_title)
.setMessage(getString(R.string.editor_share_to_all_dialog_message_1) + " "
+ getString(R.string.editor_share_to_all_dialog_message_2))

View File

@@ -155,7 +155,7 @@ public class FeatureCategoryFragment
// Duplicate of showNoobDialog()
private void showNoteConfirmationDialog(double lat, double lon, String noteText)
{
new MaterialAlertDialogBuilder(requireActivity(), R.style.MwmTheme_AlertDialog)
new MaterialAlertDialogBuilder(requireActivity())
.setTitle(R.string.editor_share_to_all_dialog_title)
.setMessage(getString(R.string.editor_share_to_all_dialog_message_1) + " "
+ getString(R.string.editor_share_to_all_dialog_message_2))

View File

@@ -79,7 +79,7 @@ public class OsmLoginFragment extends BaseMwmToolbarFragment
private void onAuthFail()
{
new MaterialAlertDialogBuilder(requireActivity(), R.style.MwmTheme_AlertDialog)
new MaterialAlertDialogBuilder(requireActivity())
.setTitle(R.string.editor_login_error_dialog)
.setPositiveButton(R.string.ok, null)
.show();

View File

@@ -66,7 +66,7 @@ public class FaqFragment extends BaseMwmFragment
FloatingActionButton feedbackFab = root.findViewById(R.id.feedback_fab);
feedbackFab.setOnClickListener(
v
-> new MaterialAlertDialogBuilder(requireActivity(), R.style.MwmTheme_AlertDialog)
-> new MaterialAlertDialogBuilder(requireActivity())
.setTitle(R.string.feedback)
.setNegativeButton(R.string.cancel, null)
.setItems(new CharSequence[] {getString(R.string.feedback_general), getString(R.string.report_a_bug)},

View File

@@ -107,7 +107,7 @@ public class TrafficButtonController implements TrafficManager.TrafficCallback
if (mDialog != null && mDialog.isShowing())
return;
mDialog = new MaterialAlertDialogBuilder(mActivity, R.style.MwmTheme_AlertDialog)
mDialog = new MaterialAlertDialogBuilder(mActivity)
.setMessage(R.string.common_check_internet_connection_dialog)
.setPositiveButton(R.string.ok, (dialog, which) -> TrafficManager.INSTANCE.setEnabled(false))
.setCancelable(true)

View File

@@ -56,7 +56,7 @@ abstract class BaseRoutingErrorDialogFragment extends BaseMwmDialogFragment
public Dialog onCreateDialog(Bundle savedInstanceState)
{
parseArguments();
MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(requireActivity(), R.style.MwmTheme_AlertDialog)
MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(requireActivity())
.setCancelable(true)
.setNegativeButton(android.R.string.cancel, null);
beforeDialogCreated(builder);

View File

@@ -494,7 +494,7 @@ public class SettingsPrefsFragment extends BaseXmlSettingsFragment implements La
pref.setOnPreferenceClickListener(preference -> {
if (MapManager.nativeIsDownloading())
{
new MaterialAlertDialogBuilder(requireActivity(), R.style.MwmTheme_AlertDialog)
new MaterialAlertDialogBuilder(requireActivity())
.setTitle(R.string.downloading_is_active)
.setMessage(R.string.cant_change_this_setting)
.setPositiveButton(R.string.ok, null)

View File

@@ -97,7 +97,7 @@ public class StoragePathFragment extends BaseSettingsFragment
final String oldPath = storages.get(currentIndex).mPath;
final String newPath = storages.get(newIndex).mPath;
new MaterialAlertDialogBuilder(requireActivity(), R.style.MwmTheme_AlertDialog)
new MaterialAlertDialogBuilder(requireActivity())
.setCancelable(false)
.setTitle(R.string.move_maps)
.setPositiveButton(R.string.ok, (dlg, which) -> moveStorage(newPath, oldPath))
@@ -133,7 +133,7 @@ public class StoragePathFragment extends BaseSettingsFragment
if (!result)
{
new MaterialAlertDialogBuilder(requireActivity(), R.style.MwmTheme_AlertDialog)
new MaterialAlertDialogBuilder(requireActivity())
.setTitle(R.string.move_maps_error)
.setPositiveButton(
R.string.report_a_bug,

View File

@@ -61,6 +61,7 @@ public class StackedButtonsDialog extends AppCompatDialog implements View.OnClic
setCancelable(mCancelable);
setOnCancelListener(mCancelListener);
setContentView(R.layout.dialog_stacked_buttons);
getWindow().setBackgroundDrawableResource(android.R.color.transparent);
TextView title = findViewById(R.id.tv__title);
UiUtils.setTextAndHideIfEmpty(title, mTitle);

View File

@@ -49,8 +49,8 @@ public class MyPositionButton
int colorAttr = R.attr.iconTint;
@DimenRes
int sizeDimen = R.dimen.map_button_icon_size;
if (mode == LocationState.FOLLOW || mode == LocationState.FOLLOW_AND_ROTATE_ROUTE
|| mode == LocationState.FOLLOW_AND_ROTATE_COMPASS || mode == LocationState.PENDING_POSITION)
if (mode == LocationState.FOLLOW || mode == LocationState.FOLLOW_AND_ROTATE
|| mode == LocationState.PENDING_POSITION)
{
colorAttr = com.google.android.material.R.attr.colorSecondary;
if (mode == LocationState.PENDING_POSITION)
@@ -69,8 +69,7 @@ public class MyPositionButton
case LocationState.NOT_FOLLOW_NO_POSITION -> R.drawable.ic_location_off;
case LocationState.NOT_FOLLOW -> R.drawable.ic_location_crosshair;
case LocationState.FOLLOW -> R.drawable.ic_follow;
case LocationState.FOLLOW_AND_ROTATE_COMPASS -> R.drawable.ic_follow_and_rotate;
case LocationState.FOLLOW_AND_ROTATE_ROUTE -> R.drawable.ic_follow_route;
case LocationState.FOLLOW_AND_ROTATE -> R.drawable.ic_follow_and_rotate;
default -> throw new IllegalArgumentException("Invalid button mode: " + mode);
};
image = ResourcesCompat.getDrawable(resources, drawableRes, context.getTheme());

View File

@@ -47,7 +47,7 @@ public class BookmarkColorDialogFragment extends BaseMwmDialogFragment
mIconResId = getArguments().getInt(ICON_RES);
}
return new MaterialAlertDialogBuilder(requireActivity(), R.style.MwmTheme_AlertDialog)
return new MaterialAlertDialogBuilder(requireActivity())
.setView(buildView())
.setTitle(R.string.choose_color)
.setNegativeButton(R.string.cancel, null)

View File

@@ -464,7 +464,7 @@ public class PlacePageController
mAlertDialog.show();
return;
}
mAlertDialog = new MaterialAlertDialogBuilder(requireContext(), R.style.MwmTheme_AlertDialog)
mAlertDialog = new MaterialAlertDialogBuilder(requireContext())
.setTitle(requireContext().getString(R.string.delete_track_dialog_title, mMapObject.getTitle()))
.setCancelable(true)
.setNegativeButton(R.string.cancel, null)

View File

@@ -4,7 +4,7 @@
android:color="?colorControlHighlight">
<item>
<shape>
<solid android:color="?cardBackground" />
<solid android:color="?appBackground" />
</shape>
</item>
<item android:id="@android:id/mask">

View File

@@ -1,30 +0,0 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:strokeColor="@android:color/white"
android:fillColor="@android:color/white"
android:pathData="M15.15 16.92l-7.04 2.8v0.4l2.63 1.07 0.98 2.67h0.39z"/>
<path
android:strokeColor="@android:color/white"
android:strokeWidth="2"
android:strokeLineJoin="miter"
android:pathData="m 16.25,15.95 c 2.29,-2.29 1.91,-3.87 -4.06,-3.87"/>
<path
android:strokeColor="@android:color/white"
android:strokeWidth="2"
android:strokeLineJoin="miter"
android:pathData="M8.98 7.43c-2.97 2.96-2.72 4.66 3.24 4.66"/>
<path
android:strokeColor="@android:color/white"
android:strokeWidth="2"
android:strokeLineJoin="miter"
android:pathData="M8.89 7.51l8.83-8.79"/>
<path
android:strokeColor="@android:color/white"
android:strokeWidth="2"
android:strokeLineJoin="miter"
android:pathData="M9.2 22.83c-0.64 0.57-2.9 2.5-3.56 3.13"/>
</vector>

View File

@@ -1,12 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
<com.google.android.material.card.MaterialCardView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
style="@style/Widget.Material3.CardView.Filled"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/margin_half"
android:background="?cardBackground">
app:cardBackgroundColor="?attr/colorSurfaceContainerHigh"
app:cardCornerRadius="28dp">
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:orientation="vertical"
@@ -49,3 +55,4 @@
tools:text="Do not Use Today"/>
</LinearLayout>
</LinearLayout>
</com.google.android.material.card.MaterialCardView>

View File

@@ -22,12 +22,9 @@
android:layout_height="match_parent"
android:clipChildren="false"
android:clipToPadding="false"
android:orientation="vertical"
android:baselineAligned="false"
android:orientation="horizontal"
tools:ignore="ScrollViewSize">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
@@ -111,6 +108,5 @@
android:text="@string/register_at_openstreetmap" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
</ScrollView>
</LinearLayout>

View File

@@ -17,6 +17,7 @@
android:id="@+id/street_frame"
android:layout_width="500dp"
android:layout_height="wrap_content"
style="@style/Widget.Material3.CardView.Filled"
android:layout_marginEnd="@dimen/margin_quarter"
app:cardCornerRadius="@dimen/margin_half"
android:elevation="@dimen/nav_elevation"

View File

@@ -11,8 +11,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:backgroundTint="?menuBackground"
android:background="@drawable/onmap_downloader_background"
android:background="?menuBackground"
android:padding="@dimen/margin_base"
android:clipToPadding="false"
android:clipChildren="false"

View File

@@ -1,9 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
<com.google.android.material.card.MaterialCardView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
style="@style/Widget.Material3.CardView.Filled"
app:cardBackgroundColor="?attr/colorSurfaceContainerHigh"
app:cardCornerRadius="28dp">
<LinearLayout
android:orientation="vertical"
android:background="?cardBackground"
android:minWidth="@dimen/bookmark_purchase_img_width"
android:layout_width="match_parent"
android:layout_height="wrap_content">
@@ -21,9 +27,11 @@
android:layout_marginEnd="@dimen/margin_base_plus"
android:layout_marginStart="@dimen/margin_base_plus"
tools:text="Select list"/>
<include
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycler"
android:layout_marginTop="@dimen/margin_base"
android:layout_height="wrap_content"
android:layout_width="match_parent"
layout="@layout/recycler_default"/>
android:scrollbars="vertical"/>
</LinearLayout>
</com.google.android.material.card.MaterialCardView>

View File

@@ -1,13 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
<com.google.android.material.card.MaterialCardView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
style="@style/Widget.Material3.CardView.Filled"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="@dimen/margin_double_and_half"
android:background="?cardBackground"
android:minWidth="@dimen/dialog_min_width"
android:minHeight="@dimen/dialog_min_height"
app:cardBackgroundColor="?attr/colorSurfaceContainerHigh"
app:cardCornerRadius="28dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="@dimen/margin_base_plus">
@@ -77,3 +82,4 @@
app:buttonTint="@null"/>
</RadioGroup>
</LinearLayout>
</com.google.android.material.card.MaterialCardView>

View File

@@ -1,12 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
<com.google.android.material.card.MaterialCardView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
style="@style/Widget.Material3.CardView.Filled"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/margin_half"
android:background="?cardBackground">
app:cardBackgroundColor="?attr/colorSurfaceContainerHigh"
app:cardCornerRadius="28dp">
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:orientation="vertical"
@@ -41,3 +47,4 @@
style="@style/MwmWidget.Button.StackedButtonsDialog"
tools:text="Do not Use Today"/>
</LinearLayout>
</com.google.android.material.card.MaterialCardView>

View File

@@ -13,7 +13,6 @@
android:paddingTop="@dimen/margin_half"
android:paddingBottom="@dimen/margin_half"
android:layout_marginEnd="@dimen/margin_base"
android:background="?cardBackground"
android:textAppearance="@style/MwmTextAppearance.Caption"
tools:text="Downloaded"
tools:background="#80FF0000"/>

View File

@@ -6,7 +6,7 @@
android:id="@+id/rl__bookmark_details"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="?cardBackground"
android:background="?appBackground"
android:padding="@dimen/margin_half">
<LinearLayout
android:id="@+id/ll__bookmark_name"

View File

@@ -3,7 +3,7 @@
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:background="?cardBackground"
android:background="?appBackground"
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.google.android.material.appbar.MaterialToolbar
@@ -69,7 +69,6 @@
android:inputType="textMultiLine"/>
</com.google.android.material.textfield.TextInputLayout>
<View
android:background="?cardBackground"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</LinearLayout>

View File

@@ -11,5 +11,6 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scrollbars="vertical"
android:fadeScrollbars="false" />
android:fadeScrollbars="false"
android:background="?appBackground"/>
</LinearLayout>

View File

@@ -4,7 +4,7 @@
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
style="@style/MwmWidget.Floating"
android:background="?cardBackground"
android:background="?appBackground"
android:layout_width="match_parent"
android:layout_height="match_parent">
<include layout="@layout/toolbar_with_search"/>
@@ -17,10 +17,12 @@
style="@style/MwmWidget.Button.Primary"
tools:text="@string/downloader_update_all_button"/>
<include
layout="@layout/recycler_default"
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycler"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="?appBackground"
android:scrollbars="vertical"
android:layout_below="@id/toolbar"
android:layout_above="@id/action"/>

View File

@@ -4,7 +4,7 @@
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="?cardBackground">
android:background="?appBackground">
<com.google.android.material.appbar.MaterialToolbar
android:id="@+id/toolbar"
style="@style/MwmWidget.ToolbarStyle"

View File

@@ -5,6 +5,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:background="?windowBackgroundForced"
android:orientation="vertical">
<com.google.android.material.appbar.MaterialToolbar

View File

@@ -10,7 +10,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/frameLayout"
android:background="?cardBackground">
android:background="?windowBackgroundForced">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/phones_recycler"

View File

@@ -61,12 +61,12 @@
android:layout_height="match_parent"
android:clickable="true"
android:focusable="true"
android:background="?cardBackground">
android:background="?appBackground">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycler"
android:clipToPadding="false"
android:background="?cardBackground"
android:background="?appBackground"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>

View File

@@ -4,6 +4,10 @@
style="@style/MwmWidget.FrameLayout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<include
layout="@layout/recycler_default"/>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycler"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?appBackground"
android:scrollbars="vertical"/>
</FrameLayout>

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
@@ -13,36 +13,12 @@
android:orientation="vertical"
android:padding="@dimen/margin_half">
<com.google.android.material.card.MaterialCardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
style="@style/MwmWidget.M3.Editor.CardView"
card_view:cardBackgroundColor="?cardBackground"
card_view:cardCornerRadius="2dp"
card_view:cardElevation="4dp">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/et__timetable"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:background="@null"
android:gravity="top|start"
android:inputType="textMultiLine"
android:padding="@dimen/margin_base"
android:textAppearance="@style/MwmTextAppearance.Body3"
tools:hint="hint"
tools:text="trololo \ntrololo \ntrololo"/>
</com.google.android.material.card.MaterialCardView>
<com.google.android.material.card.MaterialCardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/margin_half"
card_view:cardBackgroundColor="?cardBackground"
card_view:cardCornerRadius="2dp"
card_view:cardElevation="4dp">
style="@style/MwmWidget.M3.Editor.CardView"
app:cardBackgroundColor="?cardBackground">
<LinearLayout
android:id="@+id/examples"
@@ -50,6 +26,26 @@
android:layout_height="match_parent"
android:orientation="vertical"
android:animateLayoutChanges="true">
<com.google.android.material.textfield.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="@dimen/margin_half"
android:layout_marginBottom="@dimen/margin_half"
app:hintEnabled="false">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/et__timetable"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:background="@null"
android:gravity="top|start"
android:inputType="textMultiLine"
android:padding="@dimen/margin_base"
android:textAppearance="@style/MwmTextAppearance.Body3"
tools:hint="hint"
tools:text="trololo \ntrololo \ntrololo"/>
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textview.MaterialTextView
android:id="@+id/tv__examples_title"

View File

@@ -3,7 +3,7 @@
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?cardBackground"
android:background="?appBackground"
android:padding="@dimen/margin_base">
<LinearLayout

View File

@@ -5,7 +5,7 @@
style="@style/MwmTextAppearance.Headline6"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?windowBackgroundForced"
android:background="?appBackground"
android:gravity="start|center_vertical"
android:paddingStart="@dimen/margin_base"
android:paddingTop="@dimen/margin_base_plus"

View File

@@ -6,7 +6,7 @@
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_gravity="center"
android:orientation="vertical"
android:background="?cardBackground"
android:background="?appBackground"
android:padding="@dimen/margin_base">
<com.google.android.material.textview.MaterialTextView
android:layout_width="match_parent"

View File

@@ -7,7 +7,7 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?cardBackground"
android:background="?colorSurfaceContainerHigh"
android:minHeight="@dimen/height_item_oneline"
android:paddingStart="@dimen/margin_base_plus"
android:paddingEnd="@dimen/margin_base_plus">

View File

@@ -7,7 +7,7 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?cardBackground"
android:background="?colorSurfaceContainerHigh"
android:minHeight="@dimen/height_item_oneline"
android:paddingStart="@dimen/margin_base_plus"
android:paddingEnd="@dimen/margin_base_plus">

View File

@@ -1,11 +1,14 @@
<androidx.constraintlayout.widget.ConstraintLayout
<com.google.android.material.card.MaterialCardView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
style="@style/MwmWidget.M3.Editor.CardView"
android:layout_width="match_parent"
android:layout_height="@dimen/height_item_oneline"
android:background="?clickableBackground"
android:layout_marginTop="@dimen/margin_half"
android:layout_margin="@dimen/margin_eighth"
android:layout_height="wrap_content">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="@dimen/margin_half"
android:paddingStart="@dimen/margin_half_plus"
android:paddingEnd="@dimen/margin_half_plus">
@@ -25,7 +28,6 @@
android:layout_marginStart="@dimen/margin_half"
android:layout_marginEnd="@dimen/margin_half"
android:layout_toStartOf="@id/delete_icon"
android:textColorHint="?android:textColorSecondary"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/delete_icon"
app:layout_constraintStart_toEndOf="@+id/phone_icon"
@@ -41,7 +43,6 @@
<com.google.android.material.imageview.ShapeableImageView
android:id="@+id/delete_icon"
style="@style/MwmWidget.Editor.MetadataIcon"
android:layout_marginStart="@dimen/margin_half"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
@@ -49,3 +50,4 @@
app:srcCompat="@drawable/ic_delete" />
</androidx.constraintlayout.widget.ConstraintLayout>
</com.google.android.material.card.MaterialCardView>

View File

@@ -17,6 +17,7 @@
android:id="@+id/street_frame"
android:layout_width="match_parent"
android:layout_height="wrap_content"
style="@style/Widget.Material3.CardView.Filled"
android:layout_marginStart="@dimen/nav_street_left"
android:layout_marginEnd="@dimen/margin_quarter"
app:cardCornerRadius="@dimen/margin_half"

View File

@@ -4,7 +4,7 @@
android:id="@+id/menu_frame"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?cardBackground"
android:background="?appBackground"
android:clickable="true"
android:visibility="gone"
tools:visibility="visible">

View File

@@ -2,7 +2,7 @@
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:background="?cardBackground"
android:background="?appBackground"
android:layout_width="match_parent"
android:layout_height="wrap_content">

View File

@@ -29,7 +29,7 @@
<com.google.android.material.textview.MaterialTextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?cardBackground"
android:background="?appBackground"
android:padding="@dimen/margin_base"
android:text="@string/editor_focus_map_on_location"
app:layout_constraintTop_toBottomOf="@+id/toolbar_point_chooser" />

View File

@@ -6,7 +6,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="@dimen/height_block_base"
android:background="?cardBackground"
android:background="?appBackground"
android:baselineAligned="false">
<LinearLayout
android:id="@+id/btn__search_point"

View File

@@ -146,16 +146,13 @@
android:foreground="@drawable/shadow_top"
android:visibility="gone"
tools:visibility="visible">
<RelativeLayout
<LinearLayout
android:id="@+id/driving_options_btn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?selectableItemBackgroundBorderless"
android:gravity="center"
android:minHeight="@dimen/height_block_base">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<com.google.android.material.imageview.ShapeableImageView
android:id="@+id/driving_options_btn_img"
android:layout_width="@dimen/margin_base_plus"
@@ -174,8 +171,7 @@
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="@color/text_light"
tools:text="test" />
</LinearLayout>
</RelativeLayout>
</LinearLayout>
</FrameLayout>
<FrameLayout
style="@style/MwmWidget.FrameLayout.Elevation"

View File

@@ -11,7 +11,7 @@
<item name="android:textColorPrimary">@color/text_light</item>
<item name="android:textColorPrimaryInverse">@color/text_dark</item>
<item name="android:textColorSecondary">@color/text_light_subtitle</item>
<item name="android:windowBackground">?windowBackgroundForced</item>
<item name="android:windowBackground">?appBackground</item>
<item name="android:colorPrimaryDark">@color/bg_primary_dark</item>
<item name="android:windowSoftInputMode">stateUnspecified|adjustPan</item>
<item name="android:fontFamily">@string/robotoRegular</item>
@@ -21,7 +21,7 @@
<item name="android:statusBarColor">?colorPrimary</item>
<item name="android:windowTranslucentNavigation">false</item>
<item name="alertDialogTheme">@style/MwmTheme.AlertDialog</item>
<item name="alertDialogTheme">@style/MwmTheme.M3.AlertDialog</item>
<item name="windowBackgroundForced">@color/bg_window</item>
<item name="cardBackground">@color/bg_cards</item>
<item name="titleDialogTheme">@color/white_primary</item>

View File

@@ -120,7 +120,7 @@
<dimen name="nav_frame_padding">@dimen/margin_half</dimen>
<dimen name="zoom_buttons_margin">58dp</dimen>
<dimen name="map_buttons_bottom_margin">184dp</dimen>
<dimen name="map_buttons_bottom_margin">136dp</dimen>
<dimen name="map_buttons_bottom_max_width">300dp</dimen>
<dimen name="appbar_elevation">4dp</dimen>

View File

@@ -12,7 +12,7 @@
<item name="android:textColorPrimary">@color/text_dark</item>
<item name="android:textColorPrimaryInverse">@color/text_light</item>
<item name="android:textColorSecondary">@color/text_dark_subtitle</item>
<item name="android:windowBackground">?windowBackgroundForced</item>
<item name="android:windowBackground">?appBackground</item>
<item name="android:colorPrimaryDark">@color/bg_primary_dark</item>
<item name="android:windowSoftInputMode">stateUnspecified|adjustPan</item>
<item name="android:fontFamily">@string/robotoRegular</item>
@@ -20,7 +20,7 @@
<item name="android:windowActionBarOverlay">true</item>
<item name="clickableBackground">?selectableItemBackground</item>
<item name="android:statusBarColor">?colorPrimary</item>
<item name="alertDialogTheme">@style/MwmTheme.AlertDialog</item>
<item name="alertDialogTheme">@style/MwmTheme.M3.AlertDialog</item>
<item name="windowBackgroundForced">@color/bg_window</item>
<item name="cardBackground">@color/bg_cards</item>
<item name="titleDialogTheme">@color/black_primary</item>
@@ -185,11 +185,11 @@
</style>
<style name="MwmTheme.CardBg">
<item name="android:windowBackground">@color/bg_cards</item>
<item name="android:windowBackground">?appBackground</item>
</style>
<style name="MwmTheme.WindowBg">
<item name="android:windowBackground">@color/bg_window</item>
<item name="android:windowBackground">?appBackground</item>
</style>
<style name="MwmTheme.AlertDialog" parent="Theme.Material3.DayNight.Dialog.Alert">
@@ -243,7 +243,7 @@
<style name="MwmTheme.FullScreenDialog">
<item name="android:windowIsFloating">false</item>
<item name="android:windowBackground">@android:color/white</item>
<item name="android:windowBackground">?appBackground</item>
</style>
<style name="MwmTheme.MaterialTimePicker" parent="ThemeOverlay.MaterialComponents.TimePicker">
@@ -281,4 +281,11 @@
<style name="PopupMenu" parent="ThemeOverlay.Material3">
<item name="android:popupBackground">?windowBackgroundForced</item>
</style>
<!-- Theme required to apply M3 dialog style on preference screen -->
<style name="MwmTheme.M3.AlertDialog" parent="ThemeOverlay.Material3.MaterialAlertDialog">
<item name="dialogCornerRadius">28dp</item>
<item name="cornerFamily">rounded</item>
<item name="android:colorBackground">?attr/colorSurfaceContainerHigh</item>
<item name="android:layout">@layout/m3_alert_dialog</item>
</style>
</resources>

View File

@@ -27,8 +27,6 @@ import app.organicmaps.sdk.util.NetworkPolicy;
import app.organicmaps.sdk.util.log.Logger;
import org.chromium.base.ObserverList;
import java.util.HashMap;
public class LocationHelper implements BaseLocationProvider.Listener
{
private static final long INTERVAL_MS = 500;
@@ -58,12 +56,6 @@ public class LocationHelper implements BaseLocationProvider.Listener
private Handler mHandler;
private Runnable mLocationTimeoutRunnable = this::notifyLocationUpdateTimeout;
private static final double INTERVAL_PROVIDER_DECISION = 3.0; // seconds
private final HashMap<String, Integer> mProviderLocationCounts = new HashMap<>();
private final HashMap<String, Float> mProviderAccuracyMeans = new HashMap<>();
private double mTimeAtLastProviderChange = Double.NaN;
private String mCurrentProvider = null;
@NonNull
private final GnssStatusCompat.Callback mGnssStatusCallback = new GnssStatusCompat.Callback() {
@Override
@@ -195,6 +187,7 @@ public class LocationHelper implements BaseLocationProvider.Listener
@Override
public void onLocationChanged(@NonNull Location location)
{
Logger.d(TAG, "provider = " + mLocationProvider.getClass().getSimpleName() + " location = " + location);
if (!isActive())
{
@@ -208,59 +201,21 @@ public class LocationHelper implements BaseLocationProvider.Listener
return;
}
updateProviderDecision(location);
if(mCurrentProvider != null && !mCurrentProvider.equals(location.getProvider())) {
Logger.d(TAG, "REJECTED: provider = " + mLocationProvider.getClass().getSimpleName() + " location = " + location);
if (mSavedLocation != null)
{
if (!LocationUtils.isLocationBetterThanLast(location, mSavedLocation))
{
Logger.d(TAG, "The new " + location + " is worse than the last " + mSavedLocation);
return;
}
}
Logger.d(TAG, "provider = " + mLocationProvider.getClass().getSimpleName() + " location = " + location);
mSavedLocation = location;
mMyPosition = null;
notifyLocationUpdated();
}
private void updateProviderDecision(Location location) {
if(Double.isNaN(mTimeAtLastProviderChange))
mTimeAtLastProviderChange = location.getElapsedRealtimeNanos() * 1.0E-9;
String provider = location.getProvider();
int count = mProviderLocationCounts.getOrDefault(provider, 0);
float average = mProviderAccuracyMeans.getOrDefault(provider, 0.0f);
float accuracy = location.getAccuracy();
float newAverage = (count * average + accuracy) / (count + 1);
mProviderLocationCounts.put(provider, count + 1);
mProviderAccuracyMeans.put(provider, newAverage);
double currentTime = location.getElapsedRealtimeNanos();
double timeDiff = (currentTime - mTimeAtLastProviderChange) * 1.0E-9;
if(timeDiff > INTERVAL_PROVIDER_DECISION) {
mCurrentProvider = getMinAccuracyProvider();
Logger.d(TAG, "Selected: " + mCurrentProvider + ", with acc. " + mProviderAccuracyMeans.get(mCurrentProvider));
mTimeAtLastProviderChange = currentTime;
mProviderLocationCounts.clear();
mProviderAccuracyMeans.clear();
}
}
private String getMinAccuracyProvider() {
String minAccuracyProvider = null;
float minAccuracy = Float.MAX_VALUE;
for(String p : mProviderAccuracyMeans.keySet()) {
float pAccuracy = mProviderAccuracyMeans.get(p);
if(pAccuracy < minAccuracy) {
minAccuracy = pAccuracy;
minAccuracyProvider = p;
}
}
return minAccuracyProvider;
}
// Used by GoogleFusedLocationProvider.
// Used by GoogleFusedLocationProvider.
@SuppressWarnings("unused")
@Override
@UiThread

View File

@@ -20,8 +20,7 @@ public final class LocationState
}
@Retention(RetentionPolicy.SOURCE)
@IntDef({PENDING_POSITION, NOT_FOLLOW_NO_POSITION, NOT_FOLLOW, FOLLOW, FOLLOW_AND_ROTATE_COMPASS,
FOLLOW_AND_ROTATE_ROUTE})
@IntDef({PENDING_POSITION, NOT_FOLLOW_NO_POSITION, NOT_FOLLOW, FOLLOW, FOLLOW_AND_ROTATE})
@interface Value
{}
@@ -30,8 +29,7 @@ public final class LocationState
public static final int NOT_FOLLOW_NO_POSITION = 1;
public static final int NOT_FOLLOW = 2;
public static final int FOLLOW = 3;
public static final int FOLLOW_AND_ROTATE_COMPASS = 4;
public static final int FOLLOW_AND_ROTATE_ROUTE = 5;
public static final int FOLLOW_AND_ROTATE = 4;
// These constants should correspond to values defined in platform/location.hpp
// Leave 0-value as no any error.
@@ -71,8 +69,7 @@ public final class LocationState
case NOT_FOLLOW_NO_POSITION -> "NOT_FOLLOW_NO_POSITION";
case NOT_FOLLOW -> "NOT_FOLLOW";
case FOLLOW -> "FOLLOW";
case FOLLOW_AND_ROTATE_COMPASS -> "FOLLOW_AND_ROTATE_COMPASS";
case FOLLOW_AND_ROTATE_ROUTE -> "FOLLOW_AND_ROTATE_ROUTE";
case FOLLOW_AND_ROTATE -> "FOLLOW_AND_ROTATE";
default -> "Unknown: " + mode;
};
}

View File

@@ -81,6 +81,20 @@ public class LocationUtils
return location.getAccuracy() > 0.0f;
}
public static boolean isLocationBetterThanLast(@NonNull Location newLocation, @NonNull Location lastLocation)
{
if (newLocation.getElapsedRealtimeNanos() < lastLocation.getElapsedRealtimeNanos())
return false;
// As described in isAccuracySatisfied, GPS may have zero accuracy "for some reasons".
if (isFromGpsProvider(lastLocation) && lastLocation.getAccuracy() == 0.0f)
return true;
double speed = Math.max(DEFAULT_SPEED_MPS, (newLocation.getSpeed() + lastLocation.getSpeed()) / 2.0);
double lastAccuracy = lastLocation.getAccuracy() + speed * LocationUtils.getTimeDiff(lastLocation, newLocation);
return newLocation.getAccuracy() < lastAccuracy;
}
public static boolean areLocationServicesTurnedOn(@NonNull Context context)
{
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P)

View File

@@ -947,6 +947,9 @@
<string name="type.railway.monorail">Monorail</string>
<string name="type.railway.monorail.bridge">Monorail Bridge</string>
<string name="type.railway.monorail.tunnel">Monorail Tunnel</string>
<string name="type.railway.miniature">Miniature Railway</string>
<string name="type.railway.miniature.bridge">Miniature Railway Bridge</string>
<string name="type.railway.miniature.tunnel">Miniature Railway Tunnel</string>
<string name="type.railway.narrow_gauge">Narrow Gauge Rail</string>
<string name="type.railway.narrow_gauge.bridge">Narrow Gauge Rail Bridge</string>
<string name="type.railway.narrow_gauge.tunnel">Narrow Gauge Rail Tunnel</string>
@@ -1421,6 +1424,7 @@
<string name="type.tourism.information.board">Information Board</string>
<string name="type.tourism.information.guidepost">Guidepost</string>
<string name="type.tourism.information.map">Tourist Map</string>
<string name="type.tourism.information.tactile_map">Tactile Map</string>
<string name="type.tourism.information.office">Tourist Office</string>
<string name="type.tourism.information.visitor_centre">Visitor Centre</string>
<string name="type.amenity.ranger_station">Ranger Station</string>

View File

@@ -402,6 +402,7 @@
"tourism-chalet|@category_hotel": "5Holiday Cottage|5vacation home|4Chalet",
"tourism-information-board": "Information Board",
"tourism-information-map": "Tourist map|map|4Information",
"tourism-information-tactile_map": "Tactile map|map|4Information",
"tourism-information-guidepost": "Guidepost",
"aerialway-station": "Aerialway Station|5Cable car station",
"aeroway-helipad": "4Helipad",

File diff suppressed because it is too large Load Diff

View File

@@ -518,7 +518,7 @@ piste:type|sled;402;
leisure|beach_resort;403;
leisure|dog_park;404;
aerialway|gondola;405;
deprecated:historic|museum:10.2021;[historic=museum];x;name;int_name;406;tourism|museum
tourism|information|tactile_map;[tourism=information][information=tactile_map];;name;int_name;406;
highway|living_street|bridge;[highway=living_street][bridge?];;name;int_name;407;
leisure|track|area;[leisure=track][area?];;name;int_name;408;
railway|monorail;409;
@@ -757,9 +757,9 @@ highway|track|grade5|permissive;[highway=track][tracktype=grade5][access=permiss
lateral|port;[seamark:buoy_lateral:category=port],[seamark:beacon_lateral:category=port][seamark:beacon_lateral:shape=tower],[seamark:beacon_lateral:category=port][seamark:beacon_lateral:shape=lattice],[seamark:beacon_lateral:category=port][seamark:beacon_lateral:shape=pile],[seamark:beacon_lateral:category=port][seamark:beacon_lateral:shape=buoyant];;;;632;
lateral|starboard;[seamark:buoy_lateral:category=starboard],[seamark:beacon_lateral:category=starboard][seamark:beacon_lateral:shape=tower],[seamark:beacon_lateral:category=starboard][seamark:beacon_lateral:shape=lattice],[seamark:beacon_lateral:category=starboard][seamark:beacon_lateral:shape=pile],[seamark:beacon_lateral:category=starboard][seamark:beacon_lateral:shape=buoyant];;;;633;
highway|tertiary_link|tunnel;[highway=tertiary_link][tunnel?];;name;int_name;634;
deprecated|deprecated;635;x
deprecated|deprecated;636;x
deprecated|deprecated;637;x
railway|miniature;635;
railway|miniature|bridge;[railway=miniature][bridge?];;name;int_name;636;
railway|miniature|tunnel;[railway=miniature][tunnel?];;name;int_name;637;
deprecated|deprecated;638;x
deprecated|deprecated;639;x
deprecated|deprecated;640;x
Can't render this file because it contains an unexpected character in line 7 and column 16.

View File

@@ -449,6 +449,7 @@ area|z13-[landuse=quarry],
area|z13-[power=plant],
area|z13-[power=substation],
area|z13-[power=generator],
area|z13-[man_made=wastewater_plant]
{fill-opacity: 1; fill-color: @industrial;}
area|z13-[landuse=construction],

View File

@@ -592,6 +592,7 @@ area|z15-[landuse=industrial],
area|z15-[landuse=construction],
area|z15-[landuse=railway],
area|z15-[landuse=quarry],
area|z15-[man_made=wastewater_plant],
node|z15-[landuse=industrial],
node|z15-[landuse=construction],
node|z15-[landuse=landfill],

View File

@@ -766,7 +766,8 @@ node|z16-[tourism=information][information=board]
{icon-image: board.svg;text-offset: 1;icon-min-distance: 10;}
node|z16-[tourism=information][information=guidepost]
{icon-image: guidepost.svg;text-offset: 1;icon-min-distance: 10;}
node|z16-[tourism=information][information=map]
node|z16-[tourism=information][information=map],
node|z16-[tourism=information][information=tactile_map],
{icon-image: map.svg;text-offset: 1;icon-min-distance: 10;}
node|z15-[amenity=ranger_station],

View File

@@ -70,8 +70,16 @@ node[amenity=arts_centre],
node[amenity=community_centre],
node[amenity=conference_centre],
node[amenity=exhibition_centre],
node[amenity=place_of_worship]
node[amenity=place_of_worship],
node[amenity=social_facility],
node[historic=castle][castle_type=castrum],
node[historic=castle][castle_type=defensive],
node[historic=castle][castle_type=fortified_church],
node[historic=castle][castle_type=fortress],
node[historic=castle][castle_type=hillfort],
node[historic=castle][castle_type=kremlin],
node[historic=castle][castle_type=shiro],
node[historic=fortress],
node[historic=ship],
node[leisure=hackerspace],
node[social_facility],

View File

@@ -1195,6 +1195,7 @@ line|z14-[railway=monorail],
line|z15-[railway=narrow_gauge],
line|z15-[railway=construction],
line|z15-[railway=preserved],
line|z16-[railway=miniature],
line|z16-[railway=disused],
line|z16-[railway=abandoned],
{color: @railway; opacity: 0.7;}
@@ -1214,12 +1215,14 @@ line|z13-[railway=rail][bridge?]::bridgewhite,
line|z13-[railway=subway][bridge?]::bridgewhite,
line|z13-[railway=light_rail][bridge?]::bridgewhite,
line|z15-[railway=preserved][bridge?]::bridgewhite,
line|z16-[railway=miniature][bridge?]::bridgewhite,
line|z16-[railway=abandoned][bridge?]::bridgewhite,
{casing-linecap: butt;casing-color:@bridge_background;casing-opacity: 0.8;}
line|z16-[railway=rail][bridge?]::bridgeblack,
line|z16-[railway=subway][bridge?]::bridgeblack,
line|z16-[railway=light_rail][bridge?]::bridgeblack,
line|z16-[railway=preserved][bridge?]::bridgeblack,
line|z16-[railway=miniature][bridge?]::bridgeblack,
line|z16-[railway=abandoned][bridge?]::bridgeblack,
{casing-linecap: butt;casing-color:@bridge_casing;casing-opacity: 0.7;}
@@ -1370,6 +1373,7 @@ line|z18-[railway=light_rail][!tunnel]::dash,
line|z15-[railway=preserved],
line|z16-[railway=miniature],
line|z16-[railway=abandoned],
{width: 1.6;dashes: 6.3,6.3;}
@@ -1419,23 +1423,27 @@ line|z13-15[railway=rail][bridge?]::bridgewhite,
line|z13-15[railway=subway][bridge?]::bridgewhite,
line|z13-15[railway=light_rail][bridge?]::bridgewhite,
line|z15[railway=preserved][bridge?]::bridgewhite,
line|z16[railway=miniature][bridge?]::bridgewhite,
{casing-width-add: 1.2;}
line|z16[railway=rail][bridge?]::bridgewhite,
line|z16[railway=subway][bridge?]::bridgewhite,
line|z16[railway=light_rail][bridge?]::bridgewhite,
line|z16[railway=preserved][bridge?]::bridgewhite,
line|z16[railway=miniature][bridge?]::bridgewhite,
line|z16[railway=abandoned][bridge?]::bridgewhite,
{casing-width-add: 1.6;}
line|z17[railway=rail][bridge?]::bridgewhite,
line|z17[railway=subway][bridge?]::bridgewhite,
line|z17[railway=light_rail][bridge?]::bridgewhite,
line|z17[railway=preserved][bridge?]::bridgewhite,
line|z17[railway=miniature][bridge?]::bridgewhite,
line|z17[railway=abandoned][bridge?]::bridgewhite,
{casing-width-add: 2.3;}
line|z18-[railway=rail][bridge?]::bridgewhite,
line|z18-[railway=subway][bridge?]::bridgewhite,
line|z18-[railway=light_rail][bridge?]::bridgewhite,
line|z18-[railway=preserved][bridge?]::bridgewhite,
line|z18-[railway=miniature][bridge?]::bridgewhite,
line|z18-[railway=abandoned][bridge?]::bridgewhite,
{casing-width-add: 3.5;}
@@ -1443,18 +1451,21 @@ line|z16[railway=rail][bridge?]::bridgeblack,
line|z16[railway=subway][bridge?]::bridgeblack,
line|z16[railway=light_rail][bridge?]::bridgeblack,
line|z16[railway=preserved][bridge?]::bridgeblack,
line|z16[railway=miniature][bridge?]::bridgeblack,
line|z16[railway=abandoned][bridge?]::bridgeblack,
{casing-width-add: 2.2;}
line|z17[railway=rail][bridge?]::bridgeblack,
line|z17[railway=subway][bridge?]::bridgeblack,
line|z17[railway=light_rail][bridge?]::bridgeblack,
line|z17[railway=preserved][bridge?]::bridgeblack,
line|z17[railway=miniature][bridge?]::bridgeblack,
line|z17[railway=abandoned][bridge?]::bridgeblack,
{casing-width-add: 3;}
line|z18-[railway=rail][bridge?]::bridgeblack,
line|z18-[railway=subway][bridge?]::bridgeblack,
line|z18-[railway=light_rail][bridge?]::bridgeblack,
line|z18-[railway=preserved][bridge?]::bridgeblack,
line|z18-[railway=miniature][bridge?]::bridgeblack,
line|z18-[railway=abandoned][bridge?]::bridgeblack,
{casing-width-add: 4.4;}

View File

@@ -208,6 +208,7 @@ landuse-industrial # area z13- (also has captio
landuse-industrial-mine # area z13- (also has icon z15-, caption(optional) z15-)
landuse-quarry # area z13- (also has icon z15-, caption(optional) z15-)
landuse-railway # area z13- (also has caption z15-)
man_made-wastewater_plant # area z13- (also has caption z15-)
man_made-works # area z13- (also has icon z16-, caption(optional) z17-)
power-generator # area z13- (also has icon z17-)
power-generator-gas # area z13- (also has icon z17-)

View File

@@ -299,6 +299,9 @@ railway-abandoned-bridge # line z16- (also has line::
railway-abandoned-tunnel # line z16-
railway-construction # line z15-
railway-disused # line z16-
railway-miniature # line z16-
railway-miniature-bridge # line z16- (also has line::bridgeblack z16-, line::bridgewhite z16-)
railway-miniature-tunnel # line z16-
railway-preserved # line z15-
railway-preserved-bridge # line z15- (also has line::bridgeblack z16-, line::bridgewhite z15-)
railway-preserved-tunnel # line z15-
@@ -352,6 +355,7 @@ highway-trunk_link-bridge::bridgewhite # line::bridgewhite z14- (al
highway-unclassified-bridge::bridgewhite # line::bridgewhite z14- (also has line z11-, line::bridgeblack z14-, pathtext z13-)
railway-abandoned-bridge::bridgewhite # line::bridgewhite z16- (also has line z16-, line::bridgeblack z16-)
railway-light_rail-bridge::bridgewhite # line::bridgewhite z13- (also has line z13-, line::bridgeblack z16-, line::dash z16-)
railway-miniature-bridge::bridgewhite # line::bridgewhite z16- (also has line z16-, line::bridgeblack z16-)
railway-preserved-bridge::bridgewhite # line::bridgewhite z15- (also has line z15-, line::bridgeblack z16-)
railway-rail-branch-bridge::bridgewhite # line::bridgewhite z13- (also has line z11-, line::bridgeblack z16-, line::dash z16-)
railway-rail-bridge::bridgewhite # line::bridgewhite z13- (also has line z11-, line::bridgeblack z16-, line::dash z16-)
@@ -388,6 +392,7 @@ highway-trunk_link-bridge::bridgeblack # line::bridgeblack z14- (al
highway-unclassified-bridge::bridgeblack # line::bridgeblack z14- (also has line z11-, line::bridgewhite z14-, pathtext z13-)
railway-abandoned-bridge::bridgeblack # line::bridgeblack z16- (also has line z16-, line::bridgewhite z16-)
railway-light_rail-bridge::bridgeblack # line::bridgeblack z16- (also has line z13-, line::bridgewhite z13-, line::dash z16-)
railway-miniature-bridge::bridgeblack # line::bridgeblack z16- (also has line z16-, line::bridgewhite z16-)
railway-preserved-bridge::bridgeblack # line::bridgeblack z16- (also has line z15-, line::bridgewhite z15-)
railway-rail-branch-bridge::bridgeblack # line::bridgeblack z16- (also has line z11-, line::bridgewhite z13-, line::dash z16-)
railway-rail-bridge::bridgeblack # line::bridgeblack z16- (also has line z11-, line::bridgewhite z13-, line::dash z16-)

View File

@@ -1374,6 +1374,7 @@ leisure-slipway # icon z17- (also has captio
leisure-track # caption z16- (also has line z15-)
leisure-track-area # caption z16- (also has area z15-)
man_made-petroleum_well # icon z17- (also has caption(optional) z18-)
man_made-wastewater_plant # caption z15- (also has area z13-)
power-generator # icon z17- (also has area z13-)
power-generator-gas # icon z17- (also has area z13-)
power-generator-hydro # icon z17- (also has area z13-)
@@ -2386,6 +2387,7 @@ tourism-information # icon z16- (also has captio
tourism-information-board # icon z16- (also has caption(optional) z16-)
tourism-information-guidepost # icon z16- (also has caption(optional) z16-)
tourism-information-map # icon z16- (also has caption(optional) z16-)
tourism-information-tactile_map # icon z16- (also has caption(optional) z16-)
=== -9940
amenity # caption z19-
@@ -2477,4 +2479,5 @@ entrance-service # icon z19- (also has captio
# tourism-information-board # caption(optional) z16- (also has icon z16-)
# tourism-information-guidepost # caption(optional) z16- (also has icon z16-)
# tourism-information-map # caption(optional) z16- (also has icon z16-)
# tourism-information-tactile_map # caption(optional) z16- (also has icon z16-)
=== -10000

View File

@@ -353,6 +353,7 @@ node|z15-[tourism=information][information=board],
node|z15-[tourism=information][information=guidepost],
{icon-image: guidepost.svg;}
node|z15-[tourism=information][information=map],
node|z15-[tourism=information][information=tactile_map],
{icon-image: map.svg;}
node|z13-[amenity=ranger_station],

View File

@@ -552,14 +552,17 @@ line|z18-[railway=rail][service=service]::dash,
line|z13-[railway=construction],
line|z13-[railway=preserved],
line|z13-[railway=miniature],
line|z13-[railway=disused],
line|z13-[railway=abandoned],
{color: @railway; opacity:1;}
line|z13-[railway=preserved],
line|z13-[railway=miniature],
line|z13-[railway=abandoned]
{width: 1.6; dashes: 6.3,6.3;}
line|z16-[railway=preserved],
line|z16-[railway=miniature],
line|z16-[railway=abandoned]
{width: 2.2; dashes: 8,8;}

View File

@@ -208,6 +208,7 @@ landuse-industrial # area z13- (also has captio
landuse-industrial-mine # area z13- (also has icon z15-, caption(optional) z15-)
landuse-quarry # area z13- (also has icon z15-, caption(optional) z15-)
landuse-railway # area z13- (also has caption z15-)
man_made-wastewater_plant # area z13- (also has caption z15-)
man_made-works # area z13- (also has icon z16-, caption(optional) z17-)
power-generator # area z13- (also has icon z17-)
power-generator-gas # area z13- (also has icon z17-)

View File

@@ -301,6 +301,9 @@ railway-abandoned-bridge # line z13- (also has line::
railway-abandoned-tunnel # line z13-
railway-construction # line z13-
railway-disused # line z13-
railway-miniature # line z13-
railway-miniature-bridge # line z13- (also has line::bridgeblack z16-, line::bridgewhite z16-)
railway-miniature-tunnel # line z13-
railway-preserved # line z13-
railway-preserved-bridge # line z13- (also has line::bridgeblack z16-, line::bridgewhite z15-)
railway-preserved-tunnel # line z13-
@@ -354,6 +357,7 @@ highway-trunk_link-bridge::bridgewhite # line::bridgewhite z14- (al
highway-unclassified-bridge::bridgewhite # line::bridgewhite z14- (also has line z11-, line::bridgeblack z14-, pathtext z13-)
railway-abandoned-bridge::bridgewhite # line::bridgewhite z16- (also has line z13-, line::bridgeblack z16-)
railway-light_rail-bridge::bridgewhite # line::bridgewhite z13- (also has line z13-, line::bridgeblack z16-, line::dash z16-)
railway-miniature-bridge::bridgewhite # line::bridgewhite z16- (also has line z13-, line::bridgeblack z16-)
railway-preserved-bridge::bridgewhite # line::bridgewhite z15- (also has line z13-, line::bridgeblack z16-)
railway-rail-branch-bridge::bridgewhite # line::bridgewhite z13- (also has line z10-, line::bridgeblack z16-, line::dash z15-)
railway-rail-bridge::bridgewhite # line::bridgewhite z13- (also has line z10-, line::bridgeblack z16-, line::dash z15-)
@@ -390,6 +394,7 @@ highway-trunk_link-bridge::bridgeblack # line::bridgeblack z14- (al
highway-unclassified-bridge::bridgeblack # line::bridgeblack z14- (also has line z11-, line::bridgewhite z14-, pathtext z13-)
railway-abandoned-bridge::bridgeblack # line::bridgeblack z16- (also has line z13-, line::bridgewhite z16-)
railway-light_rail-bridge::bridgeblack # line::bridgeblack z16- (also has line z13-, line::bridgewhite z13-, line::dash z16-)
railway-miniature-bridge::bridgeblack # line::bridgeblack z16- (also has line z13-, line::bridgewhite z16-)
railway-preserved-bridge::bridgeblack # line::bridgeblack z16- (also has line z13-, line::bridgewhite z15-)
railway-rail-branch-bridge::bridgeblack # line::bridgeblack z16- (also has line z10-, line::bridgewhite z13-, line::dash z15-)
railway-rail-bridge::bridgeblack # line::bridgeblack z16- (also has line z10-, line::bridgewhite z13-, line::dash z15-)

View File

@@ -1377,6 +1377,7 @@ leisure-slipway # icon z17- (also has captio
leisure-track # caption z16- (also has line z15-)
leisure-track-area # caption z16- (also has area z15-)
man_made-petroleum_well # icon z14- (also has caption(optional) z18-)
man_made-wastewater_plant # caption z15- (also has area z13-)
power-generator # icon z17- (also has area z13-)
power-generator-gas # icon z17- (also has area z13-)
power-generator-hydro # icon z17- (also has area z13-)
@@ -2392,6 +2393,7 @@ tourism-information # icon z15- (also has captio
tourism-information-board # icon z15- (also has caption(optional) z15-)
tourism-information-guidepost # icon z15- (also has caption(optional) z15-)
tourism-information-map # icon z15- (also has caption(optional) z15-)
tourism-information-tactile_map # icon z15- (also has caption(optional) z15-)
=== -9940
amenity # caption z19-
@@ -2483,4 +2485,5 @@ entrance-service # icon z19- (also has captio
# tourism-information-board # caption(optional) z15- (also has icon z15-)
# tourism-information-guidepost # caption(optional) z15- (also has icon z15-)
# tourism-information-map # caption(optional) z15- (also has icon z15-)
# tourism-information-tactile_map # caption(optional) z15- (also has icon z15-)
=== -10000

View File

@@ -310,6 +310,7 @@ area|z15-[landuse=quarry],
area|z15-[power=plant],
area|z15-[power=substation],
area|z15-[power=generator],
area|z15-[man_made=wastewater_plant],
{fill-opacity: 1; fill-color: @industrial;}
area|z15-[landuse=construction],

View File

@@ -720,6 +720,7 @@ line|z15-[railway=narrow_gauge],
line|z16-[railway=construction],
line|z16-[railway=disused],
line|z16-[railway=preserved],
line|z16-[railway=miniature],
line|z16-[railway=abandoned],
{color: @railway; opacity: 0.6;}
@@ -740,6 +741,7 @@ line|z14-[railway=rail][bridge?]::bridgewhite,
line|z14-[railway=subway][bridge?]::bridgewhite,
line|z14-[railway=light_rail][bridge?]::bridgewhite,
line|z16-[railway=preserved][bridge?]::bridgewhite,
line|z16-[railway=miniature][bridge?]::bridgewhite,
line|z16-[railway=abandoned][bridge?]::bridgewhite,
line|z16-[railway=tram][bridge?]::bridgewhite,
{casing-linecap: butt;casing-color:@bridge_background; opacity: 0.8;}
@@ -747,6 +749,7 @@ line|z16-[railway=rail][bridge?]::bridgeblack,
line|z16-[railway=subway][bridge?]::bridgeblack,
line|z16-[railway=light_rail][bridge?]::bridgeblack,
line|z16-[railway=preserved][bridge?]::bridgeblack,
line|z16-[railway=miniature][bridge?]::bridgeblack,
line|z16-[railway=abandoned][bridge?]::bridgeblack,
line|z16-[railway=tram][bridge?]::bridgeblack,
{casing-linecap: butt;casing-color:@bridge_casing; opacity: 0.6;}
@@ -910,6 +913,7 @@ line|z19-[railway=light_rail][!tunnel]::dash,
line|z16-[railway=preserved],
line|z16-[railway=miniature],
line|z16-[railway=abandoned]
{width: 1.6;dashes: 6.3,6.3;}
@@ -945,18 +949,21 @@ line|z16[railway=rail][bridge?]::bridgewhite,
line|z16[railway=subway][bridge?]::bridgewhite,
line|z16[railway=light_rail][bridge?]::bridgewhite,
line|z16[railway=preserved][bridge?]::bridgewhite,
line|z16[railway=miniature][bridge?]::bridgewhite,
line|z16[railway=abandoned][bridge?]::bridgewhite,
{casing-width-add: 1.6;}
line|z17[railway=rail][bridge?]::bridgewhite,
line|z17[railway=subway][bridge?]::bridgewhite,
line|z17[railway=light_rail][bridge?]::bridgewhite,
line|z17[railway=preserved][bridge?]::bridgewhite,
line|z17[railway=miniature][bridge?]::bridgewhite,
line|z17[railway=abandoned][bridge?]::bridgewhite,
{casing-width-add: 2.3;}
line|z18-[railway=rail][bridge?]::bridgewhite,
line|z18-[railway=subway][bridge?]::bridgewhite,
line|z18-[railway=light_rail][bridge?]::bridgewhite,
line|z18-[railway=preserved][bridge?]::bridgewhite,
line|z18-[railway=miniature][bridge?]::bridgewhite,
line|z18-[railway=abandoned][bridge?]::bridgewhite,
{casing-width-add: 3.5;}
@@ -964,18 +971,21 @@ line|z16[railway=rail][bridge?]::bridgeblack,
line|z16[railway=subway][bridge?]::bridgeblack,
line|z16[railway=light_rail][bridge?]::bridgeblack,
line|z16[railway=preserved][bridge?]::bridgeblack,
line|z16[railway=miniature][bridge?]::bridgeblack,
line|z16[railway=abandoned][bridge?]::bridgeblack,
{casing-width-add: 2.2;}
line|z17[railway=rail][bridge?]::bridgeblack,
line|z17[railway=subway][bridge?]::bridgeblack,
line|z17[railway=light_rail][bridge?]::bridgeblack,
line|z17[railway=preserved][bridge?]::bridgeblack,
line|z17[railway=miniature][bridge?]::bridgeblack,
line|z17[railway=abandoned][bridge?]::bridgeblack,
{casing-width-add: 3;}
line|z18-[railway=rail][bridge?]::bridgeblack,
line|z18-[railway=subway][bridge?]::bridgeblack,
line|z18-[railway=light_rail][bridge?]::bridgeblack,
line|z18-[railway=preserved][bridge?]::bridgeblack,
line|z18-[railway=miniature][bridge?]::bridgeblack,
line|z18-[railway=abandoned][bridge?]::bridgeblack,
{casing-width-add: 4.4;}

View File

@@ -110,6 +110,7 @@ landuse-industrial-mine # area z15-
landuse-landfill # area z15- (also has caption z15-)
landuse-quarry # area z15- (also has caption z15-)
landuse-railway # area z15- (also has caption z15-)
man_made-wastewater_plant # area z15-
man_made-works # area z15-
power-generator # area z15-
power-generator-gas # area z15-

View File

@@ -276,6 +276,9 @@ railway-abandoned-bridge # line z16- (also has line::
railway-abandoned-tunnel # line z16-
railway-construction # line z16-
railway-disused # line z16-
railway-miniature # line z16-
railway-miniature-bridge # line z16- (also has line::bridgeblack z16-, line::bridgewhite z16-)
railway-miniature-tunnel # line z16-
railway-preserved # line z16-
railway-preserved-bridge # line z16- (also has line::bridgeblack z16-, line::bridgewhite z16-)
railway-preserved-tunnel # line z16-
@@ -295,6 +298,7 @@ highway-trunk_link-bridge::bridgewhite # line::bridgewhite z14- (al
highway-unclassified-bridge::bridgewhite # line::bridgewhite z14- (also has line z11-, line::bridgeblack z14-, pathtext z14-)
railway-abandoned-bridge::bridgewhite # line::bridgewhite z16- (also has line z16-, line::bridgeblack z16-)
railway-light_rail-bridge::bridgewhite # line::bridgewhite z14- (also has line z13-, line::bridgeblack z16-, line::dash z16-)
railway-miniature-bridge::bridgewhite # line::bridgewhite z16- (also has line z16-, line::bridgeblack z16-)
railway-preserved-bridge::bridgewhite # line::bridgewhite z16- (also has line z16-, line::bridgeblack z16-)
railway-rail-branch-bridge::bridgewhite # line::bridgewhite z14- (also has line z11-, line::bridgeblack z16-, line::dash z16-)
railway-rail-bridge::bridgewhite # line::bridgewhite z14- (also has line z11-, line::bridgeblack z16-, line::dash z16-)
@@ -321,6 +325,7 @@ highway-trunk_link-bridge::bridgeblack # line::bridgeblack z14- (al
highway-unclassified-bridge::bridgeblack # line::bridgeblack z14- (also has line z11-, line::bridgewhite z14-, pathtext z14-)
railway-abandoned-bridge::bridgeblack # line::bridgeblack z16- (also has line z16-, line::bridgewhite z16-)
railway-light_rail-bridge::bridgeblack # line::bridgeblack z16- (also has line z13-, line::bridgewhite z14-, line::dash z16-)
railway-miniature-bridge::bridgeblack # line::bridgeblack z16- (also has line z16-, line::bridgewhite z16-)
railway-preserved-bridge::bridgeblack # line::bridgeblack z16- (also has line z16-, line::bridgewhite z16-)
railway-rail-branch-bridge::bridgeblack # line::bridgeblack z16- (also has line z11-, line::bridgewhite z14-, line::dash z16-)
railway-rail-bridge::bridgeblack # line::bridgeblack z16- (also has line z11-, line::bridgewhite z14-, line::dash z16-)

View File

@@ -111,6 +111,21 @@ sudo apk add \
sqlite-dev
```
#### Void
```bash
xbps-install -S \
wget \
optipng \
cmake \
ninja \
qt6-base-devel \
qt6-svg-devel \
qt6-position-devel \
python3-pip
pip3 install "protobuf<3.21" --break-system-packages
```
#### macOS
```bash

View File

@@ -18,7 +18,13 @@ Owners of the CoMaps team and repositories on Codeberg
- [@comaps/admins](https://codeberg.org/org/comaps/teams/admins)
- Administrators of different repositories on Codeberg
Administrators of different repositories on Codeberg
## Mergers
- [compaps/mergers](https://codeberg.org/org/comaps/teams/mergers)
Contributors who have merge permissions on CoMaps repositories, can do "official reviews" (those that count towards PR approvals), and can create branches/tags.
## Android

View File

@@ -2979,6 +2979,7 @@ UNIT_CLASS_TEST(TestWithClassificator, OsmType_ComplexTypesSmoke)
{{"tourism", "information", "board"}, {{"tourism", "information"}, {"information", "board"}}},
{{"tourism", "information", "guidepost"}, {{"tourism", "information"}, {"information", "guidepost"}}},
{{"tourism", "information", "map"}, {{"tourism", "information"}, {"information", "map"}}},
{{"tourism", "information", "tactile_map"}, {{"tourism", "information"}, {"information", "tactile_map"}}},
{{"tourism", "information", "office"}, {{"tourism", "information"}, {"information", "office"}}},
//{{"waterway", "canal", "tunnel"}, {{"waterway", "canal"}, {"tunnel", "any_value"}}},
//{{"waterway", "river", "tunnel"}, {{"waterway", "river"}, {"tunnel", "any_value"}}},

View File

@@ -151,7 +151,7 @@ public:
// Set speed as-is from parent link.
if (parentHwType == hwType)
return {{s.GetForward(), s.GetUnits()}};
/* Commenting this part out as an attempt to solve displayed (and inexistent) max speed in highway links (https://codeberg.org/comaps/comaps/issues/1000)
using routing::HighwayType;
if ((*parentHwType == HighwayType::HighwayMotorway && hwType == HighwayType::HighwayMotorwayLink) ||
(*parentHwType == HighwayType::HighwayTrunk && hwType == HighwayType::HighwayTrunkLink) ||
@@ -163,6 +163,7 @@ public:
return converter.ClosestValidMacro(
{base::asserted_cast<MaxspeedType>(std::lround(s.GetForward() * kLinkToMainSpeedFactor)), s.GetUnits()});
}
*/
return {};
};

View File

@@ -239,7 +239,7 @@ final class CarPlayService: NSObject {
MapTemplateBuilder.configureBaseUI(mapTemplate: mapTemplate)
if currentPositionMode == .pendingPosition {
mapTemplate.leadingNavigationBarButtons = []
} else if currentPositionMode == .follow || currentPositionMode == .followAndRotateCompass || currentPositionMode == .followAndRotateRoute {
} else if currentPositionMode == .follow || currentPositionMode == .followAndRotate {
MapTemplateBuilder.setupDestinationButton(mapTemplate: mapTemplate)
} else {
MapTemplateBuilder.setupRecenterButton(mapTemplate: mapTemplate)
@@ -623,32 +623,22 @@ extension CarPlayService: CarPlayRouterListener {
extension CarPlayService: LocationModeListener {
func processMyPositionStateModeEvent(_ mode: MWMMyPositionMode) {
currentPositionMode = mode
// make sure we have a rootMapTemplate
guard let rootMapTemplate = rootMapTemplate else {
return
}
// exit if we're navigating
guard let info = rootMapTemplate.userInfo as? MapInfo,
info.type == CPConstants.TemplateType.main else {
MapTemplateBuilder.updateMyPositionModeButton(mapTemplate: rootMapTemplate, newMode: mode)
guard let rootMapTemplate = rootMapTemplate,
let info = rootMapTemplate.userInfo as? MapInfo,
info.type == CPConstants.TemplateType.main else {
return
}
switch mode {
case .follow, .followAndRotateCompass, .followAndRotateRoute:
case .follow, .followAndRotate:
if !rootMapTemplate.isPanningInterfaceVisible {
MapTemplateBuilder.setupDestinationButton(mapTemplate: rootMapTemplate)
MapTemplateBuilder.updateMyPositionModeButton(mapTemplate: rootMapTemplate, newMode: mode)
}
case .notFollow:
if !rootMapTemplate.isPanningInterfaceVisible {
MapTemplateBuilder.setupRecenterButton(mapTemplate: rootMapTemplate)
MapTemplateBuilder.updateMyPositionModeButton(mapTemplate: rootMapTemplate, newMode: mode)
}
case .pendingPosition, .notFollowNoPosition:
rootMapTemplate.leadingNavigationBarButtons = []
MapTemplateBuilder.updateMyPositionModeButton(mapTemplate: rootMapTemplate, newMode: mode)
}
}
}

View File

@@ -5,7 +5,6 @@ final class MapTemplateBuilder {
case startPanning
case zoomIn
case zoomOut
case myPositionMode
}
enum BarButtonType {
case dismissPaning
@@ -29,7 +28,7 @@ final class MapTemplateBuilder {
configureBaseUI(mapTemplate: mapTemplate)
if positionMode == .pendingPosition {
mapTemplate.leadingNavigationBarButtons = []
} else if positionMode == .follow || positionMode == .followAndRotateCompass || positionMode == .followAndRotateRoute {
} else if positionMode == .follow || positionMode == .followAndRotate {
setupDestinationButton(mapTemplate: mapTemplate)
} else {
setupRecenterButton(mapTemplate: mapTemplate)
@@ -70,10 +69,7 @@ final class MapTemplateBuilder {
let zoomOutButton = buildMapButton(type: .zoomOut) { _ in
FrameworkHelper.zoomMap(.out)
}
let myPositionModeButton = buildMapButton(type: .myPositionMode) { _ in
FrameworkHelper.switchMyPositionMode()
}
mapTemplate.mapButtons = [myPositionModeButton, panningButton, zoomInButton, zoomOutButton]
mapTemplate.mapButtons = [panningButton, zoomInButton, zoomOutButton]
let settingsButton = buildBarButton(type: .settings) { _ in
let gridTemplate = SettingsTemplateBuilder.buildGridTemplate()
@@ -103,10 +99,7 @@ final class MapTemplateBuilder {
let panningButton = buildMapButton(type: .startPanning) { _ in
mapTemplate.showPanningInterface(animated: true)
}
let myPositionModeButton = buildMapButton(type: .myPositionMode) { _ in
FrameworkHelper.switchMyPositionMode()
}
mapTemplate.mapButtons = [myPositionModeButton, panningButton]
mapTemplate.mapButtons = [panningButton]
setupMuteAndRedirectButtons(template: mapTemplate)
let endButton = buildBarButton(type: .endRoute) { _ in
CarPlayService.shared.cancelCurrentTrip()
@@ -124,28 +117,6 @@ final class MapTemplateBuilder {
mapTemplate.leadingNavigationBarButtons = [destinationButton]
}
class func updateMyPositionModeButton(mapTemplate: CPMapTemplate, newMode: MWMMyPositionMode) {
let button = CPMapButton(handler: { _ in
FrameworkHelper.switchMyPositionMode()
})
switch newMode {
case .pendingPosition:
button.image = UIImage(systemName: "location.fill")
case .notFollowNoPosition:
button.image = UIImage(systemName: "location")
case .notFollow:
button.image = UIImage(systemName: "location")
case .follow:
button.image = UIImage(systemName: "location.fill")
case .followAndRotate:
button.image = UIImage(systemName: "location.north.line.fill")
}
if mapTemplate.mapButtons.count > 0 {
mapTemplate.mapButtons[0] = button
}
}
class func setupRecenterButton(mapTemplate: CPMapTemplate) {
let recenterButton = buildBarButton(type: .recenter) { _ in
FrameworkHelper.switchMyPositionMode()
@@ -195,8 +166,6 @@ final class MapTemplateBuilder {
button.image = UIImage(systemName: "plus")
case .zoomOut:
button.image = UIImage(systemName: "minus")
case .myPositionMode:
button.image = UIImage(systemName: "location")
}
// Remove code below once Apple has fixed its issue with the button background
if #unavailable(iOS 26) {
@@ -207,8 +176,6 @@ final class MapTemplateBuilder {
button.focusedImage = UIImage(systemName: "plus.circle.fill")
case .zoomOut:
button.focusedImage = UIImage(systemName: "minus.circle.fill")
case .myPositionMode:
button.image = UIImage(systemName: "location.fill")
}
}
return button

View File

@@ -91,8 +91,7 @@ NSString * const kUDDidShowLongTapToShowSideButtonsToast = @"kUDDidShowLongTapTo
case MWMMyPositionModeNotFollow:
case MWMMyPositionModeNotFollowNoPosition: [locBtn setStyleNameAndApply: @"ButtonGetPosition"]; break;
case MWMMyPositionModeFollow: [locBtn setStyleNameAndApply: @"ButtonFollow"]; break;
case MWMMyPositionModeFollowAndRotateCompass: [locBtn setStyleNameAndApply: @"ButtonFollowAndRotateCompass"]; break;
case MWMMyPositionModeFollowAndRotateRoute: [locBtn setStyleNameAndApply: @"ButtonFollowAndRotateRoute"]; break;
case MWMMyPositionModeFollowAndRotate: [locBtn setStyleNameAndApply: @"ButtonFollowAndRotate"]; break;
}
}

View File

@@ -632,8 +632,7 @@ NSString *const kAboutSegue = @"Map2About";
case MWMMyPositionModeNotFollow:
break;
case MWMMyPositionModeFollow:
case MWMMyPositionModeFollowAndRotateCompass:
case MWMMyPositionModeFollowAndRotateRoute:
case MWMMyPositionModeFollowAndRotate:
self.disableStandbyOnLocationStateMode = YES;
break;
}

View File

@@ -32,8 +32,7 @@ static inline MWMMyPositionMode mwmMyPositionMode(location::EMyPositionMode mode
case location::EMyPositionMode::NotFollowNoPosition: return MWMMyPositionModeNotFollowNoPosition;
case location::EMyPositionMode::NotFollow: return MWMMyPositionModeNotFollow;
case location::EMyPositionMode::Follow: return MWMMyPositionModeFollow;
case location::EMyPositionMode::FollowAndRotateCompass: return MWMMyPositionModeFollowAndRotateCompass;
case location::EMyPositionMode::FollowAndRotateRoute: return MWMMyPositionModeFollowAndRotateRoute;
case location::EMyPositionMode::FollowAndRotate: return MWMMyPositionModeFollowAndRotate;
}
}
} // namespace location_helpers

View File

@@ -50,8 +50,7 @@ std::string DebugPrint(MWMMyPositionMode mode) {
case MWMMyPositionModeNotFollowNoPosition: return "MWMMyPositionModeNotFollowNoPosition";
case MWMMyPositionModeNotFollow: return "MWMMyPositionModeNotFollow";
case MWMMyPositionModeFollow: return "MWMMyPositionModeFollow";
case MWMMyPositionModeFollowAndRotateCompass: return "MWMMyPositionModeFollowAndRotateCompass";
case MWMMyPositionModeFollowAndRotateRoute: return "MWMMyPositionModeFollowAndRotateRoute";
case MWMMyPositionModeFollowAndRotate: return "MWMMyPositionModeFollowAndRotate";
}
CHECK(false, ("Unsupported value", static_cast<int>(mode)));
}
@@ -368,8 +367,7 @@ void setShowLocationAlert(BOOL needShow) {
case MWMMyPositionModeNotFollowNoPosition:
case MWMMyPositionModeNotFollow: manager.geoMode = GeoMode::NotInPosition; break;
case MWMMyPositionModeFollow: manager.geoMode = GeoMode::InPosition; break;
case MWMMyPositionModeFollowAndRotateCompass:
case MWMMyPositionModeFollowAndRotateRoute: manager.geoMode = GeoMode::FollowAndRotate; break;
case MWMMyPositionModeFollowAndRotate: manager.geoMode = GeoMode::FollowAndRotate; break;
}
}
}

View File

@@ -30,7 +30,7 @@ NSUInteger constexpr kMaxPredictionCount = 20;
- (void)setMyPositionMode:(MWMMyPositionMode)mode
{
self.isLastPositionModeValid = (mode == MWMMyPositionModeFollowAndRotateCompass);
self.isLastPositionModeValid = (mode == MWMMyPositionModeFollowAndRotate);
[self restart];
}

View File

@@ -3,6 +3,5 @@ typedef NS_CLOSED_ENUM(NSUInteger, MWMMyPositionMode) {
MWMMyPositionModeNotFollowNoPosition,
MWMMyPositionModeNotFollow,
MWMMyPositionModeFollow,
MWMMyPositionModeFollowAndRotateCompass,
MWMMyPositionModeFollowAndRotateRoute
MWMMyPositionModeFollowAndRotate
};

View File

@@ -41,14 +41,13 @@ final class ThemeManager: NSObject {
}
}(actualTheme)
let isCarPlayActive = CarPlayService.shared.isCarplayActivated
if !isCarPlayActive, Settings.mapAppearance == .light {
if Settings.mapAppearance == .light {
if actualTheme == .vehicleDay || actualTheme == .vehicleNight {
FrameworkHelper.setTheme(.vehicleDay)
} else {
FrameworkHelper.setTheme(.day)
}
} else if !isCarPlayActive, Settings.mapAppearance == .dark {
} else if Settings.mapAppearance == .dark {
if actualTheme == .vehicleDay || actualTheme == .vehicleNight {
FrameworkHelper.setTheme(.vehicleNight)
} else {

View File

@@ -7,8 +7,7 @@ enum MapStyleSheet: String, CaseIterable {
case mapButtonPending = "ButtonPending"
case mapButtonGetPosition = "ButtonGetPosition"
case mapButtonFollow = "ButtonFollow"
case mapButtonFollowAndRotateCompass = "ButtonFollowAndRotateCompass"
case mapButtonFollowAndRotateRoute = "ButtonFollowAndRotateRoute"
case mapButtonFollowAndRotate = "ButtonFollowAndRotate"
case mapButtonMapBookmarks = "ButtonMapBookmarks"
case mapPromoDiscoveryButton = "PromoDiscroveryButton"
case mapButtonBookmarksBack = "ButtonBookmarksBack"
@@ -68,14 +67,10 @@ extension MapStyleSheet: IStyleSheet {
return .add { s in
s.mwmImage = "btn_follow"
}
case .mapButtonFollowAndRotateCompass:
case .mapButtonFollowAndRotate:
return .add { s in
s.mwmImage = "btn_follow_and_rotate"
}
case .mapButtonFollowAndRotateRoute:
return .add { s in
s.mwmImage = "btn_follow_route"
}
case .mapButtonMapBookmarks:
return .add { s in
s.mwmImage = "ic_routing_bookmark"

View File

@@ -0,0 +1,12 @@
{
"info" : {
"author" : "xcode",
"version" : 1
},
"symbols" : [
{
"filename" : "speedcamera.slash.svg",
"idiom" : "universal"
}
]
}

View File

@@ -0,0 +1,115 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--Generator: Apple Native CoreSVG 341-->
<!DOCTYPE svg
PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 3300 2200">
<!--glyph: "", point size: 100.0, font version: "21.0d6e2", template writer version: "138.0.0"-->
<style>.defaults {-sfsymbols-variable-value-mode:color;-sfsymbols-draw-reverses-motion-groups:true}
.monochrome-0 {-sfsymbols-motion-group:1;-sfsymbols-layer-tags:2e8828206d0ca565 68627a11f315162f}
.monochrome-1 {opacity:0.0;-sfsymbols-clear-behind:true;-sfsymbols-motion-group:0;-sfsymbols-layer-tags:2e8828206d0ca565 _slash}
.monochrome-2 {-sfsymbols-motion-group:0;-sfsymbols-layer-tags:2e8828206d0ca565 _slash}
.multicolor-0:tintColor {-sfsymbols-motion-group:1;-sfsymbols-layer-tags:2e8828206d0ca565 68627a11f315162f}
.multicolor-1:tintColor {opacity:0.0;-sfsymbols-clear-behind:true;-sfsymbols-motion-group:0;-sfsymbols-layer-tags:2e8828206d0ca565 _slash}
.multicolor-2:tintColor {-sfsymbols-motion-group:0;-sfsymbols-layer-tags:2e8828206d0ca565 _slash}
.hierarchical-0:secondary {-sfsymbols-motion-group:1;-sfsymbols-layer-tags:2e8828206d0ca565 68627a11f315162f}
.hierarchical-1:primary {opacity:0.0;-sfsymbols-clear-behind:true;-sfsymbols-motion-group:0;-sfsymbols-layer-tags:2e8828206d0ca565 _slash}
.hierarchical-2:primary {-sfsymbols-motion-group:0;-sfsymbols-layer-tags:2e8828206d0ca565 _slash}
.SFSymbolsPreviewWireframe {fill:none;opacity:1.0;stroke:black;stroke-width:0.5}
</style>
<g id="Notes">
<rect height="2200" id="artboard" style="fill:white;opacity:1" width="3300" x="0" y="0"/>
<line style="fill:none;stroke:black;opacity:1;stroke-width:0.5;" x1="263" x2="3036" y1="292" y2="292"/>
<text style="stroke:none;fill:black;font-family:sans-serif;font-size:13;font-weight:bold;" transform="matrix(1 0 0 1 263 322)">Weight/Scale Variations</text>
<text style="stroke:none;fill:black;font-family:sans-serif;font-size:13;text-anchor:middle;" transform="matrix(1 0 0 1 559.711 322)">Ultralight</text>
<text style="stroke:none;fill:black;font-family:sans-serif;font-size:13;text-anchor:middle;" transform="matrix(1 0 0 1 856.422 322)">Thin</text>
<text style="stroke:none;fill:black;font-family:sans-serif;font-size:13;text-anchor:middle;" transform="matrix(1 0 0 1 1153.13 322)">Light</text>
<text style="stroke:none;fill:black;font-family:sans-serif;font-size:13;text-anchor:middle;" transform="matrix(1 0 0 1 1449.84 322)">Regular</text>
<text style="stroke:none;fill:black;font-family:sans-serif;font-size:13;text-anchor:middle;" transform="matrix(1 0 0 1 1746.56 322)">Medium</text>
<text style="stroke:none;fill:black;font-family:sans-serif;font-size:13;text-anchor:middle;" transform="matrix(1 0 0 1 2043.27 322)">Semibold</text>
<text style="stroke:none;fill:black;font-family:sans-serif;font-size:13;text-anchor:middle;" transform="matrix(1 0 0 1 2339.98 322)">Bold</text>
<text style="stroke:none;fill:black;font-family:sans-serif;font-size:13;text-anchor:middle;" transform="matrix(1 0 0 1 2636.69 322)">Heavy</text>
<text style="stroke:none;fill:black;font-family:sans-serif;font-size:13;text-anchor:middle;" transform="matrix(1 0 0 1 2933.4 322)">Black</text>
<line style="fill:none;stroke:black;opacity:1;stroke-width:0.5;" x1="263" x2="3036" y1="1903" y2="1903"/>
<g transform="matrix(0.2 0 0 0.2 263 1933)">
<path d="m46.2402 4.15039c21.7773 0 39.4531-17.627 39.4531-39.4043s-17.6758-39.4043-39.4531-39.4043c-21.7285 0-39.4043 17.627-39.4043 39.4043s17.6758 39.4043 39.4043 39.4043Zm0-7.42188c-17.6758 0-31.9336-14.3066-31.9336-31.9824s14.2578-31.9824 31.9336-31.9824 31.9824 14.3066 31.9824 31.9824-14.3066 31.9824-31.9824 31.9824Zm3.61328-17.7734v-28.4668c0-2.24609-1.46484-3.75977-3.71094-3.75977-2.14844 0-3.61328 1.51367-3.61328 3.75977v28.4668c0 2.19727 1.46484 3.71094 3.61328 3.71094 2.24609 0 3.71094-1.51367 3.71094-3.71094Zm-17.8223-10.5957h28.418c2.19727 0 3.71094-1.46484 3.71094-3.61328 0-2.19727-1.51367-3.71094-3.71094-3.71094h-28.418c-2.24609 0-3.75977 1.51367-3.75977 3.71094 0 2.14844 1.51367 3.61328 3.75977 3.61328Z"/>
</g>
<g transform="matrix(0.2 0 0 0.2 281.506 1933)">
<path d="m58.5449 14.5508c27.4902 0 49.8047-22.3145 49.8047-49.8047s-22.3145-49.8047-49.8047-49.8047-49.8047 22.3145-49.8047 49.8047 22.3145 49.8047 49.8047 49.8047Zm0-8.30078c-22.9492 0-41.5039-18.5547-41.5039-41.5039s18.5547-41.5039 41.5039-41.5039 41.5039 18.5547 41.5039 41.5039-18.5547 41.5039-41.5039 41.5039Zm4.05273-23.0957v-36.9141c0-2.49023-1.70898-4.19922-4.15039-4.19922-2.39258 0-4.05273 1.70898-4.05273 4.19922v36.9141c0 2.44141 1.66016 4.15039 4.05273 4.15039 2.44141 0 4.15039-1.66016 4.15039-4.15039Zm-22.5586-14.4043h36.9629c2.44141 0 4.15039-1.61133 4.15039-4.00391 0-2.44141-1.70898-4.15039-4.15039-4.15039h-36.9629c-2.49023 0-4.15039 1.70898-4.15039 4.15039 0 2.39258 1.66016 4.00391 4.15039 4.00391Z"/>
</g>
<g transform="matrix(0.2 0 0 0.2 304.924 1933)">
<path d="m74.8535 28.3203c35.1074 0 63.623-28.4668 63.623-63.5742s-28.5156-63.623-63.623-63.623-63.5742 28.5156-63.5742 63.623 28.4668 63.5742 63.5742 63.5742Zm0-9.08203c-30.127 0-54.4922-24.3652-54.4922-54.4922s24.3652-54.4922 54.4922-54.4922 54.4922 24.3652 54.4922 54.4922-24.3652 54.4922-54.4922 54.4922Zm4.44336-30.3223v-48.4863c0-2.73438-1.85547-4.63867-4.54102-4.63867-2.58789 0-4.44336 1.9043-4.44336 4.63867v48.4863c0 2.68555 1.85547 4.58984 4.44336 4.58984 2.68555 0 4.54102-1.85547 4.54102-4.58984Zm-28.7109-19.7754h48.4863c2.68555 0 4.58984-1.80664 4.58984-4.39453 0-2.73438-1.85547-4.58984-4.58984-4.58984h-48.4863c-2.73438 0-4.58984 1.85547-4.58984 4.58984 0 2.58789 1.85547 4.39453 4.58984 4.39453Z"/>
</g>
<text style="stroke:none;fill:black;font-family:sans-serif;font-size:13;font-weight:bold;" transform="matrix(1 0 0 1 263 1953)">Design Variations</text>
<text style="stroke:none;fill:black;font-family:sans-serif;font-size:13;" transform="matrix(1 0 0 1 263 1971)">Symbols are supported in up to nine weights and three scales.</text>
<text style="stroke:none;fill:black;font-family:sans-serif;font-size:13;" transform="matrix(1 0 0 1 263 1989)">For optimal layout with text and other symbols, vertically align</text>
<text style="stroke:none;fill:black;font-family:sans-serif;font-size:13;" transform="matrix(1 0 0 1 263 2007)">symbols with the adjacent text.</text>
<line style="fill:none;stroke:#00AEEF;stroke-width:0.5;opacity:1.0;" x1="776" x2="776" y1="1919" y2="1933"/>
<g transform="matrix(0.2 0 0 0.2 776 1933)">
<path d="m16.5527 0.78125c2.58789 0 3.85742-0.976562 4.78516-3.71094l20.5566-57.5195h0.244141l20.6055 57.5195c0.927734 2.73438 2.19727 3.71094 4.73633 3.71094 2.58789 0 4.24805-1.5625 4.24805-4.00391 0-0.830078-0.146484-1.61133-0.537109-2.63672l-22.9004-60.9863c-1.12305-2.97852-3.125-4.49219-6.25-4.49219-3.02734 0-5.07812 1.46484-6.15234 4.44336l-22.9004 61.084c-0.390625 1.02539-0.537109 1.80664-0.537109 2.63672 0 2.44141 1.5625 3.95508 4.10156 3.95508Zm10.2051-20.9473h30.6641c2.00195 0 3.66211-1.66016 3.66211-3.66211 0-2.05078-1.66016-3.66211-3.66211-3.66211h-30.6641c-2.00195 0-3.66211 1.61133-3.66211 3.66211 0 2.00195 1.66016 3.66211 3.66211 3.66211Z"/>
</g>
<line style="fill:none;stroke:#00AEEF;stroke-width:0.5;opacity:1.0;" x1="792.836" x2="792.836" y1="1919" y2="1933"/>
<text style="stroke:none;fill:black;font-family:sans-serif;font-size:13;font-weight:bold;" transform="matrix(1 0 0 1 776 1953)">Margins</text>
<text style="stroke:none;fill:black;font-family:sans-serif;font-size:13;" transform="matrix(1 0 0 1 776 1971)">Leading and trailing margins on the left and right side of each symbol</text>
<text style="stroke:none;fill:black;font-family:sans-serif;font-size:13;" transform="matrix(1 0 0 1 776 1989)">can be adjusted by modifying the x-location of the margin guidelines.</text>
<text style="stroke:none;fill:black;font-family:sans-serif;font-size:13;" transform="matrix(1 0 0 1 776 2007)">Modifications are automatically applied proportionally to all</text>
<text style="stroke:none;fill:black;font-family:sans-serif;font-size:13;" transform="matrix(1 0 0 1 776 2025)">scales and weights.</text>
<g transform="matrix(0.2 0 0 0.2 1289 1933)">
<path d="m14.209 13.1348 7.86133 7.86133c4.29688 4.39453 9.32617 4.10156 13.8672-1.02539l60.6934-68.2129-4.88281-4.88281-60.2539 67.6758c-1.80664 1.95312-3.4668 2.44141-5.81055 0.0976562l-5.17578-5.12695c-2.29492-2.29492-1.80664-3.95508 0.195312-5.81055l67.4805-62.1582-4.88281-4.83398-68.0664 62.5977c-4.98047 4.58984-5.32227 9.47266-1.02539 13.8184Zm44.873-97.4609c-2.05078 2.00195-2.24609 4.88281-1.07422 6.78711 1.12305 1.80664 3.4668 3.02734 6.5918 2.24609 5.85938-1.66016 12.5977-2.39258 18.8965 0.927734l-2.68555 7.12891c-1.61133 4.00391-0.732422 6.88477 1.70898 9.42383l10.2539 10.3027c2.34375 2.39258 4.54102 2.44141 7.08008 1.95312l4.44336-0.732422 2.58789 2.53906-0.195312 2.24609c-0.0976562 2.29492 0.537109 4.29688 2.7832 6.49414l3.36914 3.32031c2.29492 2.29492 5.51758 2.49023 7.8125 0.195312l12.9883-13.0371c2.29492-2.34375 2.14844-5.37109-0.195312-7.66602l-3.41797-3.41797c-2.19727-2.19727-4.05273-3.02734-6.34766-2.88086l-2.34375 0.244141-2.44141-2.44141 1.02539-4.6875c0.634766-2.73438-0.244141-4.98047-2.88086-7.61719l-11.2793-11.1816c-12.9395-12.8418-35.5957-11.0352-46.6797-0.146484Zm7.08008 2.05078c8.78906-6.39648 25.9766-5.66406 33.6914 1.95312l12.3047 12.207c1.02539 1.02539 1.2207 1.80664 0.927734 3.32031l-1.46484 6.64062 6.73828 6.68945 4.39453-0.244141c1.12305-0.0488281 1.51367 0.0488281 2.34375 0.878906l2.53906 2.49023-10.8398 10.8398-2.49023-2.49023c-0.830078-0.878906-0.976562-1.2207-0.927734-2.39258l0.292969-4.3457-6.68945-6.73828-6.83594 1.17188c-1.41602 0.292969-2.05078 0.195312-3.17383-0.878906l-8.93555-8.88672c-1.07422-1.02539-1.17188-1.70898-0.488281-3.36914l4.58984-11.4746c-6.10352-6.34766-17.041-7.51953-25.5859-4.58984-0.683594 0.244141-0.927734-0.390625-0.390625-0.78125Z"/>
</g>
<text style="stroke:none;fill:black;font-family:sans-serif;font-size:13;font-weight:bold;" transform="matrix(1 0 0 1 1289 1953)">Exporting</text>
<text style="stroke:none;fill:black;font-family:sans-serif;font-size:13;" transform="matrix(1 0 0 1 1289 1971)">Symbols should be outlined when exporting to ensure the</text>
<text style="stroke:none;fill:black;font-family:sans-serif;font-size:13;" transform="matrix(1 0 0 1 1289 1989)">design is preserved when submitting to Xcode.</text>
<text id="template-version" style="stroke:none;fill:black;font-family:sans-serif;font-size:13;text-anchor:end;" transform="matrix(1 0 0 1 3036 1933)">Template v.7.0</text>
<text style="stroke:none;fill:black;font-family:sans-serif;font-size:13;text-anchor:end;" transform="matrix(1 0 0 1 3036 1951)">Requires Xcode 17 or greater</text>
<text id="descriptive-name" style="stroke:none;fill:black;font-family:sans-serif;font-size:13;text-anchor:end;" transform="matrix(1 0 0 1 3036 1969)">Generated from </text>
<text style="stroke:none;fill:black;font-family:sans-serif;font-size:13;text-anchor:end;" transform="matrix(1 0 0 1 3036 1987)">Typeset at 100.0 points</text>
<text style="stroke:none;fill:black;font-family:sans-serif;font-size:13;" transform="matrix(1 0 0 1 263 726)">Small</text>
<text style="stroke:none;fill:black;font-family:sans-serif;font-size:13;" transform="matrix(1 0 0 1 263 1156)">Medium</text>
<text style="stroke:none;fill:black;font-family:sans-serif;font-size:13;" transform="matrix(1 0 0 1 263 1586)">Large</text>
</g>
<g id="Guides">
<g id="H-reference" style="fill:#27AAE1;stroke:none;" transform="matrix(1 0 0 1 339 696)">
<path d="M0.993654 0L3.63775 0L29.3281-67.1323L30.0303-67.1323L30.0303-70.459L28.1226-70.459ZM11.6885-24.4799L46.9815-24.4799L46.2315-26.7285L12.4385-26.7285ZM55.1196 0L57.7637 0L30.6382-70.459L29.4326-70.459L29.4326-67.1323Z"/>
</g>
<line id="Baseline-S" style="fill:none;stroke:#27AAE1;opacity:1;stroke-width:0.5;" x1="263" x2="3036" y1="696" y2="696"/>
<line id="Capline-S" style="fill:none;stroke:#27AAE1;opacity:1;stroke-width:0.5;" x1="263" x2="3036" y1="625.541" y2="625.541"/>
<g id="H-reference" style="fill:#27AAE1;stroke:none;" transform="matrix(1 0 0 1 339 1126)">
<path d="M0.993654 0L3.63775 0L29.3281-67.1323L30.0303-67.1323L30.0303-70.459L28.1226-70.459ZM11.6885-24.4799L46.9815-24.4799L46.2315-26.7285L12.4385-26.7285ZM55.1196 0L57.7637 0L30.6382-70.459L29.4326-70.459L29.4326-67.1323Z"/>
</g>
<line id="Baseline-M" style="fill:none;stroke:#27AAE1;opacity:1;stroke-width:0.5;" x1="263" x2="3036" y1="1126" y2="1126"/>
<line id="Capline-M" style="fill:none;stroke:#27AAE1;opacity:1;stroke-width:0.5;" x1="263" x2="3036" y1="1055.54" y2="1055.54"/>
<g id="H-reference" style="fill:#27AAE1;stroke:none;" transform="matrix(1 0 0 1 339 1556)">
<path d="M0.993654 0L3.63775 0L29.3281-67.1323L30.0303-67.1323L30.0303-70.459L28.1226-70.459ZM11.6885-24.4799L46.9815-24.4799L46.2315-26.7285L12.4385-26.7285ZM55.1196 0L57.7637 0L30.6382-70.459L29.4326-70.459L29.4326-67.1323Z"/>
</g>
<line id="Baseline-L" style="fill:none;stroke:#27AAE1;opacity:1;stroke-width:0.5;" x1="263" x2="3036" y1="1556" y2="1556"/>
<line id="Capline-L" style="fill:none;stroke:#27AAE1;opacity:1;stroke-width:0.5;" x1="263" x2="3036" y1="1485.54" y2="1485.54"/>
<line id="right-margin-Black-S" style="fill:none;stroke:#00AEEF;stroke-width:0.5;opacity:1.0;" x1="2991.9" x2="2991.9" y1="600.785" y2="720.121"/>
<line id="left-margin-Black-S" style="fill:none;stroke:#00AEEF;stroke-width:0.5;opacity:1.0;" x1="2874.9" x2="2874.9" y1="600.785" y2="720.121"/>
<line id="right-margin-Regular-S" style="fill:none;stroke:#00AEEF;stroke-width:0.5;opacity:1.0;" x1="1507.07" x2="1507.07" y1="600.785" y2="720.121"/>
<line id="left-margin-Regular-S" style="fill:none;stroke:#00AEEF;stroke-width:0.5;opacity:1.0;" x1="1392.62" x2="1392.62" y1="600.785" y2="720.121"/>
<line id="right-margin-Ultralight-S" style="fill:none;stroke:#00AEEF;stroke-width:0.5;opacity:1.0;" x1="614.281" x2="614.281" y1="600.785" y2="720.121"/>
<line id="left-margin-Ultralight-S" style="fill:none;stroke:#00AEEF;stroke-width:0.5;opacity:1.0;" x1="505.141" x2="505.141" y1="600.785" y2="720.121"/>
</g>
<g id="Symbols">
<g id="Black-S" transform="matrix(1 0 0 1 2874.9 696)">
<path class="monochrome-0 multicolor-0:tintColor hierarchical-0:secondary SFSymbolsPreviewWireframe" d="M71.85-62C79.1678-62 85.1-56.0901 85.1-48.8L85.1-22.4C85.1-15.1098 79.1678-9.20001 71.85-9.20001L65.225-9.20001L65.225 4L51.975 4L51.975-9.20001L45.35-9.20001C38.0322-9.20001 32.1-15.1098 32.1-22.4L32.1-48.8C32.1-56.0901 38.0322-62 45.35-62L71.85-62ZM41.6-22C39.667-22 38.1-20.433 38.1-18.5C38.1-16.567 39.667-15 41.6-15C43.533-15 45.1-16.567 45.1-18.5C45.1-20.433 43.533-22 41.6-22ZM58.6004-49C51.144-49 45.1-42.9559 45.1-35.5C45.1-28.3424 50.6701-22.4858 57.712-22.0287L58.6004-22C66.056-22 72.1-28.0442 72.1-35.5C72.1-42.9559 66.056-49 58.6004-49ZM71.4333-76C86.1609-76 98.1-63.7624 98.1-48.6667L98.1-35L91.4334-35L91.4334-48.6667C91.4334-59.9885 82.479-69.1667 71.4333-69.1667L44.7667-69.1667C33.721-69.1667 24.7667-59.9885 24.7667-48.6667L24.7667-35L18.1-35L18.1-48.6667C18.1-63.7624 30.0391-76 44.7667-76L71.4333-76Z"/>
<path class="monochrome-1 multicolor-1:tintColor hierarchical-1:primary SFSymbolsPreviewWireframe" d="M102.472-4.48836C106.123-0.837264 106.123 5.09118 102.472 8.74227C98.8207 12.3934 92.8922 12.3934 89.2411 8.74227L14.5282-65.9706C10.8771-69.6217 10.8771-75.5502 14.5282-79.2013C18.1793-82.8524 24.1078-82.8524 27.7589-79.2013Z" data-clipstroke-keyframes="0 0 0 0.49990463 0.6089134 0 1 0 0.10891342"/>
<path class="monochrome-2 multicolor-2:tintColor hierarchical-2:primary SFSymbolsPreviewWireframe" d="M98.3217-0.338247C99.6822 1.02234 99.6822 3.23158 98.3217 4.59217C96.9611 5.95275 94.7518 5.95275 93.3912 4.59217L18.6783-70.1207C17.3178-71.4813 17.3178-73.6906 18.6783-75.0511C20.0389-76.4117 22.2482-76.4117 23.6088-75.0511Z" data-clipstroke-keyframes="0 0 0 0.49988937 0.54707384 0 1 0 0.04707384"/>
</g>
<g id="Regular-S" transform="matrix(1 0 0 1 1392.62 696)">
<path class="monochrome-0 multicolor-0:tintColor hierarchical-0:secondary SFSymbolsPreviewWireframe" d="M69.9575-61.1549C76.9038-61.1549 82.5349-55.4998 82.5349-48.524L82.5349-23.262C82.5349-16.2861 76.9038-10.631 69.9575-10.631L63.6687-10.631L63.6687 2L51.0913 2L51.0913-10.631L44.8025-10.631C37.8562-10.631 32.2251-16.2861 32.2251-23.262L32.2251-48.524C32.2251-55.4998 37.8562-61.1549 44.8025-61.1549L69.9575-61.1549ZM41.8589-22.6197C40.0853-22.6197 38.6476-21.182 38.6476-19.4085C38.6476-17.6349 40.0853-16.1972 41.8589-16.1972C43.6324-16.1972 45.0701-17.6349 45.0701-19.4085C45.0701-21.182 43.6324-22.6197 41.8589-22.6197ZM57.9156-48.3099C50.8209-48.3099 45.0701-42.5589 45.0701-35.4648C45.0701-28.6544 50.3701-23.0819 57.0703-22.647L57.9156-22.6197C65.0095-22.6197 70.7603-28.3707 70.7603-35.4648C70.7603-42.5589 65.0095-48.3099 57.9156-48.3099ZM70.0467-74C84.0379-74 95.38-62.4981 95.38-48.3099L95.38-35.4648L89.0467-35.4648L89.0467-48.3099C89.0467-58.9511 80.5401-67.5775 70.0467-67.5775L44.7133-67.5775C34.2199-67.5775 25.7133-58.9511 25.7133-48.3099L25.7133-35.4648L19.38-35.4648L19.38-48.3099C19.38-62.4981 30.7221-74 44.7133-74L70.0467-74Z"/>
<path class="monochrome-1 multicolor-1:tintColor hierarchical-1:primary SFSymbolsPreviewWireframe" d="M98.2783-6.06714C101.56-2.78573 101.56 2.54245 98.2783 5.82386C94.9969 9.10527 89.6688 9.10527 86.3874 5.82386L16.1717-64.3918C12.8902-67.6733 12.8902-73.0014 16.1717-76.2828C19.4531-79.5643 24.7812-79.5643 28.0626-76.2828Z" data-clipstroke-keyframes="0 0 0 0.50010824 0.6049547 0 1 0 0.10495472"/>
<path class="monochrome-2 multicolor-2:tintColor hierarchical-2:primary SFSymbolsPreviewWireframe" d="M94.8119-2.60066C96.1801-1.23245 96.1801 0.98917 94.8119 2.35738C93.4437 3.72558 91.222 3.72558 89.8538 2.35738L19.6381-67.8583C18.2699-69.2265 18.2699-71.4482 19.6381-72.8164C21.0063-74.1846 23.228-74.1846 24.5962-72.8164Z" data-clipstroke-keyframes="0 0 0 0.50020504 0.5497174 0 1 0 0.049717426"/>
</g>
<g id="Ultralight-S" transform="matrix(1 0 0 1 505.141 696)">
<path class="monochrome-0 multicolor-0:tintColor hierarchical-0:secondary SFSymbolsPreviewWireframe" d="M66.4435-59.169C72.8414-59.169 78.028-53.9604 78.028-47.5352L78.028-24.2676C78.028-17.8424 72.8414-12.6338 66.4435-12.6338L60.6513-12.6338L60.6513-1L49.0668-1L49.0668-12.6338L43.2745-12.6338C36.8765-12.6338 31.69-17.8424 31.69-24.2676L31.69-47.5352C31.69-53.9604 36.8765-59.169 43.2745-59.169L66.4435-59.169ZM40.5632-23.6761C38.9297-23.6761 37.6055-22.3518 37.6055-20.7183C37.6055-19.0848 38.9297-17.7606 40.5632-17.7606C42.1967-17.7606 43.521-19.0848 43.521-20.7183C43.521-22.3518 42.1967-23.6761 40.5632-23.6761ZM55.3523-47.338C48.8177-47.338 43.521-42.0411 43.521-35.5071C43.521-29.2343 48.4025-24.1018 54.5738-23.7012L55.3523-23.6761C61.8862-23.6761 67.1829-28.973 67.1829-35.5071C67.1829-42.0411 61.8862-47.338 55.3523-47.338ZM66.5257-71C79.4123-71 89.859-60.4062 89.859-47.338L89.859-35.507L84.0257-35.507L84.0257-47.338C84.0257-57.1391 76.1907-65.0845 66.5257-65.0845L43.1923-65.0845C33.5273-65.0845 25.6923-57.1391 25.6923-47.338L25.6923-35.507L19.859-35.507L19.859-47.338C19.859-60.4062 30.3057-71 43.1923-71L66.5257-71Z"/>
<path class="monochrome-1 multicolor-1:tintColor hierarchical-1:primary SFSymbolsPreviewWireframe" d="M92.2562-3.06064C93.7788-1.53808 93.7788 0.934172 92.2562 2.45673C90.7337 3.97929 88.2614 3.97929 86.7389 2.45673L16.8838-67.3983C15.3612-68.9209 15.3612-71.3932 16.8838-72.9157C18.4063-74.4383 20.8786-74.4383 22.4011-72.9157Z" data-clipstroke-keyframes="0 0 0 0.5001135 0.5550747 0 1 0 0.05507469"/>
<path class="monochrome-2 multicolor-2:tintColor hierarchical-2:primary SFSymbolsPreviewWireframe" d="M90.2053-1.00975C90.596-0.619106 90.596 0.0152006 90.2053 0.405845C89.8147 0.796489 89.1804 0.796489 88.7897 0.405845L18.9347-69.4492C18.544-69.8399 18.544-70.4742 18.9347-70.8648C19.3253-71.2555 19.9596-71.2555 20.3503-70.8648Z" data-clipstroke-keyframes="0 0 0 0.50012684 0.51529884 0 1 0 0.015298843"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 20 KiB

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