[ios] Make left button configurable

Signed-off-by: Yannik Bloscheck <git@yannikbloscheck.com>
This commit is contained in:
Yannik Bloscheck
2025-07-08 12:07:34 +02:00
parent cbd561ec90
commit 7138970ea6
60 changed files with 438 additions and 35 deletions

View File

@@ -0,0 +1,6 @@
{
"info" : {
"author" : "xcode",
"version" : 1
}
}

View File

@@ -0,0 +1,9 @@
{
"info" : {
"author" : "xcode",
"version" : 1
},
"properties" : {
"provides-namespace" : true
}
}

View File

@@ -0,0 +1,9 @@
{
"info" : {
"author" : "xcode",
"version" : 1
},
"properties" : {
"provides-namespace" : true
}
}

View File

@@ -0,0 +1,16 @@
{
"images" : [
{
"filename" : "ic_track_recording_off.svg",
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
},
"properties" : {
"preserves-vector-representation" : true,
"template-rendering-intent" : "template"
}
}

View File

@@ -0,0 +1,20 @@
<svg width="74" height="57" viewBox="0 0 74 57" xmlns="http://www.w3.org/2000/svg">
<path
d="M67.3,21.772 L39.197,33.529 50.969,38.624 56.432,50.23Z"
stroke-linejoin="round"
stroke-width="2"
fill="currentColor"
stroke="currentColor" />
<circle cx="45.042" cy="44.7" r="4.5" fill="currentColor" />
<circle cx="37.942" cy="51.6" r="4.5" fill="currentColor" />
<circle cx="27.842" cy="52" r="4.5" fill="currentColor" />
<circle cx="22.442" cy="43.5" r="4.5" fill="currentColor" />
<circle cx="26.642" cy="34.5" r="4.5" fill="currentColor" />
<circle cx="34.042" cy="27.5" r="4.5" fill="currentColor" />
<circle cx="40.842" cy="20.5" r="4.5" fill="currentColor" />
<circle cx="41.842" cy="10.5" r="4.5" fill="currentColor" />
<circle cx="32.842" cy="4.5" r="4.5" fill="currentColor" />
<circle cx="23.842" cy="9.5" r="4.5" fill="currentColor" />
<circle cx="16.842" cy="16.5" r="4.5" fill="currentColor" />
<circle cx="9.842" cy="23.5" r="4.5" fill="currentColor" />
</svg>

After

Width:  |  Height:  |  Size: 1016 B

View File

@@ -200,6 +200,7 @@
"share_my_location" = "Deel my ligging";
"prefs_group_route" = "Navigasie";
"pref_zoom_title" = "Zoemknoppe";
"pref_left_button_type" = "Left Main Button";
/* Settings «Map» category: «Appearance» title */
"pref_appearance_title" = "Appearance";
@@ -210,6 +211,9 @@
/* Settings "Appearance" category: "Dark" title, should be consistent with the pref_appearance_title translation. */
"pref_appearance_dark" = "Dark";
/* Generic «Disabled» string */
"disabled" = "Disabled";
/* Generic «Off» string */
"off" = "Off";

View File

@@ -200,6 +200,7 @@
"share_my_location" = "مشاركة موقعي";
"prefs_group_route" = "الملاحة";
"pref_zoom_title" = "أزرار التكبير والتصغير";
"pref_left_button_type" = "Left Main Button";
/* Settings «Map» category: «Appearance» title */
"pref_appearance_title" = "المظهر";
@@ -210,6 +211,9 @@
/* Settings "Appearance" category: "Dark" title, should be consistent with the pref_appearance_title translation. */
"pref_appearance_dark" = "داكن";
/* Generic «Disabled» string */
"disabled" = "Disabled";
/* Generic «Off» string */
"off" = "تعطيل";

View File

@@ -200,6 +200,7 @@
"share_my_location" = "Məkanımı Paylaşın";
"prefs_group_route" = "Naviqasiya";
"pref_zoom_title" = "Böyütmə düymələri";
"pref_left_button_type" = "Left Main Button";
/* Settings «Map» category: «Appearance» title */
"pref_appearance_title" = "Görünüş";
@@ -210,6 +211,9 @@
/* Settings "Appearance" category: "Dark" title, should be consistent with the pref_appearance_title translation. */
"pref_appearance_dark" = "Tünd";
/* Generic «Disabled» string */
"disabled" = "Disabled";
/* Generic «Off» string */
"off" = "Bağlı";

View File

@@ -200,6 +200,7 @@
"share_my_location" = "Абагуліць маё месцазнаходжанне";
"prefs_group_route" = "Навігацыя";
"pref_zoom_title" = "Кнопкі маштабавання";
"pref_left_button_type" = "Left Main Button";
/* Settings «Map» category: «Appearance» title */
"pref_appearance_title" = "Выгляд";
@@ -210,6 +211,9 @@
/* Settings "Appearance" category: "Dark" title, should be consistent with the pref_appearance_title translation. */
"pref_appearance_dark" = "Цемны";
/* Generic «Disabled» string */
"disabled" = "Disabled";
/* Generic «Off» string */
"off" = "Выключаны";

View File

@@ -200,6 +200,7 @@
"share_my_location" = "Споделяне на местоположение";
"prefs_group_route" = "Навигация";
"pref_zoom_title" = "Мащабни бутони";
"pref_left_button_type" = "Left Main Button";
/* Settings «Map» category: «Appearance» title */
"pref_appearance_title" = "Изглед";
@@ -210,6 +211,9 @@
/* Settings "Appearance" category: "Dark" title, should be consistent with the pref_appearance_title translation. */
"pref_appearance_dark" = "Тъмен";
/* Generic «Disabled» string */
"disabled" = "Disabled";
/* Generic «Off» string */
"off" = "Изключен";

View File

@@ -200,6 +200,7 @@
"share_my_location" = "Comparteix la meva ubicació";
"prefs_group_route" = "Navegació";
"pref_zoom_title" = "Botons de zoom";
"pref_left_button_type" = "Left Main Button";
/* Settings «Map» category: «Appearance» title */
"pref_appearance_title" = "Aspecte";
@@ -210,6 +211,9 @@
/* Settings "Appearance" category: "Dark" title, should be consistent with the pref_appearance_title translation. */
"pref_appearance_dark" = "Fosc";
/* Generic «Disabled» string */
"disabled" = "Disabled";
/* Generic «Off» string */
"off" = "Desactivat";

View File

@@ -200,6 +200,7 @@
"share_my_location" = "Sdílet mé umístění";
"prefs_group_route" = "Navigace";
"pref_zoom_title" = "Tlačítka přiblížení/oddálení";
"pref_left_button_type" = "Left Main Button";
/* Settings «Map» category: «Appearance» title */
"pref_appearance_title" = "Vzhled";
@@ -210,6 +211,9 @@
/* Settings "Appearance" category: "Dark" title, should be consistent with the pref_appearance_title translation. */
"pref_appearance_dark" = "Tmavý";
/* Generic «Disabled» string */
"disabled" = "Disabled";
/* Generic «Off» string */
"off" = "Vypnuto";

View File

@@ -200,6 +200,7 @@
"share_my_location" = "Del min placering";
"prefs_group_route" = "Navigation";
"pref_zoom_title" = "Zoom-knapper";
"pref_left_button_type" = "Left Main Button";
/* Settings «Map» category: «Appearance» title */
"pref_appearance_title" = "Udseende";
@@ -210,6 +211,9 @@
/* Settings "Appearance" category: "Dark" title, should be consistent with the pref_appearance_title translation. */
"pref_appearance_dark" = "Mørk";
/* Generic «Disabled» string */
"disabled" = "Disabled";
/* Generic «Off» string */
"off" = "Fra";

View File

@@ -200,6 +200,7 @@
"share_my_location" = "Meinen Standort teilen";
"prefs_group_route" = "Navigation";
"pref_zoom_title" = "Zoom-Tasten";
"pref_left_button_type" = "Linker Hauptbutton";
/* Settings «Map» category: «Appearance» title */
"pref_appearance_title" = "Erscheinungsbild";
@@ -210,6 +211,9 @@
/* Settings "Appearance" category: "Dark" title, should be consistent with the pref_appearance_title translation. */
"pref_appearance_dark" = "Dunkel";
/* Generic «Disabled» string */
"disabled" = "Deaktiviert";
/* Generic «Off» string */
"off" = "Aus";

View File

@@ -200,6 +200,7 @@
"share_my_location" = "Κοινοποίηση της τοποθεσίας μου";
"prefs_group_route" = "Πλοήγηση";
"pref_zoom_title" = "Πλήκτρα μεγέθυνσης";
"pref_left_button_type" = "Left Main Button";
/* Settings «Map» category: «Appearance» title */
"pref_appearance_title" = "Εμφάνιση";
@@ -210,6 +211,9 @@
/* Settings "Appearance" category: "Dark" title, should be consistent with the pref_appearance_title translation. */
"pref_appearance_dark" = "Σκουρόχρωμη";
/* Generic «Disabled» string */
"disabled" = "Disabled";
/* Generic «Off» string */
"off" = "Απενεργ.";

View File

@@ -200,6 +200,7 @@
"share_my_location" = "Share My Location";
"prefs_group_route" = "Navigation";
"pref_zoom_title" = "Zoom buttons";
"pref_left_button_type" = "Left Main Button";
/* Settings «Map» category: «Appearance» title */
"pref_appearance_title" = "Appearance";
@@ -210,6 +211,9 @@
/* Settings "Appearance" category: "Dark" title, should be consistent with the pref_appearance_title translation. */
"pref_appearance_dark" = "Dark";
/* Generic «Disabled» string */
"disabled" = "Disabled";
/* Generic «Off» string */
"off" = "Off";

View File

@@ -212,6 +212,7 @@
"share_my_location" = "Share My Location";
"prefs_group_route" = "Navigation";
"pref_zoom_title" = "Zoom buttons";
"pref_left_button_type" = "Left Main Button";
/* Settings «Map» category: «Appearance» title */
"pref_appearance_title" = "Appearance";
@@ -222,6 +223,9 @@
/* Settings "Appearance" category: "Dark" title, should be consistent with the pref_appearance_title translation. */
"pref_appearance_dark" = "Dark";
/* Generic «Disabled» string */
"disabled" = "Disabled";
/* Generic «Off» string */
"off" = "Off";

View File

@@ -200,6 +200,7 @@
"share_my_location" = "Compartir mi ubicación";
"prefs_group_route" = "Navegación";
"pref_zoom_title" = "Botones de zoom";
"pref_left_button_type" = "Left Main Button";
/* Settings «Map» category: «Appearance» title */
"pref_appearance_title" = "Aspecto";
@@ -210,6 +211,9 @@
/* Settings "Appearance" category: "Dark" title, should be consistent with the pref_appearance_title translation. */
"pref_appearance_dark" = "Oscuro";
/* Generic «Disabled» string */
"disabled" = "Disabled";
/* Generic «Off» string */
"off" = "Desactivado";

View File

@@ -200,6 +200,7 @@
"share_my_location" = "Compartir mi ubicación";
"prefs_group_route" = "Navegación";
"pref_zoom_title" = "Botones de zum";
"pref_left_button_type" = "Left Main Button";
/* Settings «Map» category: «Appearance» title */
"pref_appearance_title" = "Aspecto";
@@ -210,6 +211,9 @@
/* Settings "Appearance" category: "Dark" title, should be consistent with the pref_appearance_title translation. */
"pref_appearance_dark" = "Oscuro";
/* Generic «Disabled» string */
"disabled" = "Disabled";
/* Generic «Off» string */
"off" = "Desactivado";

View File

@@ -200,6 +200,7 @@
"share_my_location" = "Jaga minu asukohta";
"prefs_group_route" = "Tee juhatamine";
"pref_zoom_title" = "Suuminupud";
"pref_left_button_type" = "Left Main Button";
/* Settings «Map» category: «Appearance» title */
"pref_appearance_title" = "Välimus";
@@ -210,6 +211,9 @@
/* Settings "Appearance" category: "Dark" title, should be consistent with the pref_appearance_title translation. */
"pref_appearance_dark" = "Tume kujundus";
/* Generic «Disabled» string */
"disabled" = "Disabled";
/* Generic «Off» string */
"off" = "Väljas";

View File

@@ -200,6 +200,7 @@
"share_my_location" = "Partekatu nire kokapena";
"prefs_group_route" = "Nabigazioa";
"pref_zoom_title" = "Zoom botoiak";
"pref_left_button_type" = "Left Main Button";
/* Settings «Map» category: «Appearance» title */
"pref_appearance_title" = "Itxura";
@@ -210,6 +211,9 @@
/* Settings "Appearance" category: "Dark" title, should be consistent with the pref_appearance_title translation. */
"pref_appearance_dark" = "Iluna";
/* Generic «Disabled» string */
"disabled" = "Disabled";
/* Generic «Off» string */
"off" = "Desgaituta";

View File

@@ -200,6 +200,7 @@
"share_my_location" = "به اشتراک گذاری موقعیت مکانی من";
"prefs_group_route" = "مسیریابی";
"pref_zoom_title" = "دکمه‌های بزرگنمایی";
"pref_left_button_type" = "Left Main Button";
/* Settings «Map» category: «Appearance» title */
"pref_appearance_title" = "ظاهری";
@@ -210,6 +211,9 @@
/* Settings "Appearance" category: "Dark" title, should be consistent with the pref_appearance_title translation. */
"pref_appearance_dark" = "تاریک";
/* Generic «Disabled» string */
"disabled" = "Disabled";
/* Generic «Off» string */
"off" = "خاموش";

View File

@@ -200,6 +200,7 @@
"share_my_location" = "Jaa sijaintini";
"prefs_group_route" = "Navigointi";
"pref_zoom_title" = "Zoomauspainikkeet";
"pref_left_button_type" = "Left Main Button";
/* Settings «Map» category: «Appearance» title */
"pref_appearance_title" = "Ulkoasu";
@@ -210,6 +211,9 @@
/* Settings "Appearance" category: "Dark" title, should be consistent with the pref_appearance_title translation. */
"pref_appearance_dark" = "Tumma";
/* Generic «Disabled» string */
"disabled" = "Disabled";
/* Generic «Off» string */
"off" = "Pois päältä";

View File

@@ -200,6 +200,7 @@
"share_my_location" = "Partager ma position";
"prefs_group_route" = "Navigation";
"pref_zoom_title" = "Boutons de zoom";
"pref_left_button_type" = "Left Main Button";
/* Settings «Map» category: «Appearance» title */
"pref_appearance_title" = "Apparence";
@@ -210,6 +211,9 @@
/* Settings "Appearance" category: "Dark" title, should be consistent with the pref_appearance_title translation. */
"pref_appearance_dark" = "Sombre";
/* Generic «Disabled» string */
"disabled" = "Disabled";
/* Generic «Off» string */
"off" = "Désactivé";

View File

@@ -200,6 +200,7 @@
"share_my_location" = "שיתוף מיקום שלי";
"prefs_group_route" = "ניווט";
"pref_zoom_title" = "כפתורי זום";
"pref_left_button_type" = "Left Main Button";
/* Settings «Map» category: «Appearance» title */
"pref_appearance_title" = "מראה";
@@ -210,6 +211,9 @@
/* Settings "Appearance" category: "Dark" title, should be consistent with the pref_appearance_title translation. */
"pref_appearance_dark" = "כהה";
/* Generic «Disabled» string */
"disabled" = "Disabled";
/* Generic «Off» string */
"off" = "כבוי";

View File

@@ -200,6 +200,7 @@
"share_my_location" = "मेरा स्थान साझा करें";
"prefs_group_route" = "मार्गदर्शन";
"pref_zoom_title" = "ज़ूम बटन";
"pref_left_button_type" = "Left Main Button";
/* Settings «Map» category: «Appearance» title */
"pref_appearance_title" = "प्रकटन";
@@ -210,6 +211,9 @@
/* Settings "Appearance" category: "Dark" title, should be consistent with the pref_appearance_title translation. */
"pref_appearance_dark" = "गहरा";
/* Generic «Disabled» string */
"disabled" = "Disabled";
/* Generic «Off» string */
"off" = "बंद";

View File

@@ -200,6 +200,7 @@
"share_my_location" = "Saját helyzet megosztása";
"prefs_group_route" = "Navigáció";
"pref_zoom_title" = "Nagyítás/kicsinyítés gombok";
"pref_left_button_type" = "Left Main Button";
/* Settings «Map» category: «Appearance» title */
"pref_appearance_title" = "Megjelenés";
@@ -210,6 +211,9 @@
/* Settings "Appearance" category: "Dark" title, should be consistent with the pref_appearance_title translation. */
"pref_appearance_dark" = "Sötét";
/* Generic «Disabled» string */
"disabled" = "Disabled";
/* Generic «Off» string */
"off" = "Ki";

View File

@@ -200,6 +200,7 @@
"share_my_location" = "Bagikan Lokasi Saya";
"prefs_group_route" = "Navigasi";
"pref_zoom_title" = "Tombol perbesaran";
"pref_left_button_type" = "Left Main Button";
/* Settings «Map» category: «Appearance» title */
"pref_appearance_title" = "Tampilan";
@@ -210,6 +211,9 @@
/* Settings "Appearance" category: "Dark" title, should be consistent with the pref_appearance_title translation. */
"pref_appearance_dark" = "Gelap";
/* Generic «Disabled» string */
"disabled" = "Disabled";
/* Generic «Off» string */
"off" = "Tidak Aktif";

View File

@@ -200,6 +200,7 @@
"share_my_location" = "Condividi la mia posizione";
"prefs_group_route" = "Navigazione";
"pref_zoom_title" = "Pulsanti per lo zoom";
"pref_left_button_type" = "Left Main Button";
/* Settings «Map» category: «Appearance» title */
"pref_appearance_title" = "Aspetto";
@@ -210,6 +211,9 @@
/* Settings "Appearance" category: "Dark" title, should be consistent with the pref_appearance_title translation. */
"pref_appearance_dark" = "Scuro";
/* Generic «Disabled» string */
"disabled" = "Disabled";
/* Generic «Off» string */
"off" = "Spento";

View File

@@ -200,6 +200,7 @@
"share_my_location" = "現在地を共有する";
"prefs_group_route" = "ナビゲーション";
"pref_zoom_title" = "ズームボタン";
"pref_left_button_type" = "Left Main Button";
/* Settings «Map» category: «Appearance» title */
"pref_appearance_title" = "外観";
@@ -210,6 +211,9 @@
/* Settings "Appearance" category: "Dark" title, should be consistent with the pref_appearance_title translation. */
"pref_appearance_dark" = "ダーク";
/* Generic «Disabled» string */
"disabled" = "Disabled";
/* Generic «Off» string */
"off" = "オフ";

View File

@@ -199,6 +199,7 @@
"share_my_location" = "내 위치 공유";
"prefs_group_route" = "내비게이션";
"pref_zoom_title" = "확대/축소 버튼";
"pref_left_button_type" = "Left Main Button";
/* Settings «Map» category: «Appearance» title */
"pref_appearance_title" = "모양";
@@ -209,6 +210,9 @@
/* Settings "Appearance" category: "Dark" title, should be consistent with the pref_appearance_title translation. */
"pref_appearance_dark" = "다크";
/* Generic «Disabled» string */
"disabled" = "Disabled";
/* Generic «Off» string */
"off" = "끄기";

View File

@@ -200,6 +200,7 @@
"share_my_location" = "Bendrinti mano vietą";
"prefs_group_route" = "Navigacija";
"pref_zoom_title" = "Mastelio mygtukai";
"pref_left_button_type" = "Left Main Button";
/* Settings «Map» category: «Appearance» title */
"pref_appearance_title" = "Išvaizda";
@@ -210,6 +211,9 @@
/* Settings "Appearance" category: "Dark" title, should be consistent with the pref_appearance_title translation. */
"pref_appearance_dark" = "Tamsi";
/* Generic «Disabled» string */
"disabled" = "Disabled";
/* Generic «Off» string */
"off" = "Išjungti";

View File

@@ -200,6 +200,7 @@
"share_my_location" = "Kopīgot manu atrašanās vietu";
"prefs_group_route" = "Navigācija";
"pref_zoom_title" = "Tālummaiņas pogas";
"pref_left_button_type" = "Left Main Button";
/* Settings «Map» category: «Appearance» title */
"pref_appearance_title" = "Izskats";
@@ -210,6 +211,9 @@
/* Settings "Appearance" category: "Dark" title, should be consistent with the pref_appearance_title translation. */
"pref_appearance_dark" = "Tumšs";
/* Generic «Disabled» string */
"disabled" = "Disabled";
/* Generic «Off» string */
"off" = "Izslēgts";

View File

@@ -200,6 +200,7 @@
"share_my_location" = "माझे स्थान सामायिक करा";
"prefs_group_route" = "मार्गनिर्देशन";
"pref_zoom_title" = "झूम बटणे";
"pref_left_button_type" = "Left Main Button";
/* Settings «Map» category: «Appearance» title */
"pref_appearance_title" = "दर्शनी रूप";
@@ -210,6 +211,9 @@
/* Settings "Appearance" category: "Dark" title, should be consistent with the pref_appearance_title translation. */
"pref_appearance_dark" = "अंधार";
/* Generic «Disabled» string */
"disabled" = "Disabled";
/* Generic «Off» string */
"off" = "बंद";

View File

@@ -200,6 +200,7 @@
"share_my_location" = "Ixxerja l-post tiegħi";
"prefs_group_route" = "Navigazzjoni";
"pref_zoom_title" = "Buttuni taż-żum";
"pref_left_button_type" = "Left Main Button";
/* Settings «Map» category: «Appearance» title */
"pref_appearance_title" = "Dehra";
@@ -210,6 +211,9 @@
/* Settings "Appearance" category: "Dark" title, should be consistent with the pref_appearance_title translation. */
"pref_appearance_dark" = "Dark";
/* Generic «Disabled» string */
"disabled" = "Disabled";
/* Generic «Off» string */
"off" = "Itfi";

View File

@@ -200,6 +200,7 @@
"share_my_location" = "Del posisjonen min";
"prefs_group_route" = "Navigasjon";
"pref_zoom_title" = "Zoom-knapper";
"pref_left_button_type" = "Left Main Button";
/* Settings «Map» category: «Appearance» title */
"pref_appearance_title" = "Utseende";
@@ -210,6 +211,9 @@
/* Settings "Appearance" category: "Dark" title, should be consistent with the pref_appearance_title translation. */
"pref_appearance_dark" = "Mørke";
/* Generic «Disabled» string */
"disabled" = "Disabled";
/* Generic «Off» string */
"off" = "Av";

View File

@@ -200,6 +200,7 @@
"share_my_location" = "Deel mijn locatie";
"prefs_group_route" = "Navigatie";
"pref_zoom_title" = "Zoomknoppen";
"pref_left_button_type" = "Left Main Button";
/* Settings «Map» category: «Appearance» title */
"pref_appearance_title" = "Weergave";
@@ -210,6 +211,9 @@
/* Settings "Appearance" category: "Dark" title, should be consistent with the pref_appearance_title translation. */
"pref_appearance_dark" = "Donker";
/* Generic «Disabled» string */
"disabled" = "Disabled";
/* Generic «Off» string */
"off" = "Uit";

View File

@@ -200,6 +200,7 @@
"share_my_location" = "Udostępnij aktualne położenie";
"prefs_group_route" = "Nawigacja";
"pref_zoom_title" = "Przyciski przybliżania";
"pref_left_button_type" = "Left Main Button";
/* Settings «Map» category: «Appearance» title */
"pref_appearance_title" = "Wygląd";
@@ -210,6 +211,9 @@
/* Settings "Appearance" category: "Dark" title, should be consistent with the pref_appearance_title translation. */
"pref_appearance_dark" = "Ciemny";
/* Generic «Disabled» string */
"disabled" = "Disabled";
/* Generic «Off» string */
"off" = "Wyłączony";

View File

@@ -200,6 +200,7 @@
"share_my_location" = "Compartilhar a minha localização";
"prefs_group_route" = "Navegação";
"pref_zoom_title" = "Botões de zoom";
"pref_left_button_type" = "Left Main Button";
/* Settings «Map» category: «Appearance» title */
"pref_appearance_title" = "Aparência";
@@ -210,6 +211,9 @@
/* Settings "Appearance" category: "Dark" title, should be consistent with the pref_appearance_title translation. */
"pref_appearance_dark" = "Escura";
/* Generic «Disabled» string */
"disabled" = "Disabled";
/* Generic «Off» string */
"off" = "Desligado";

View File

@@ -200,6 +200,7 @@
"share_my_location" = "Partilhar a minha localização";
"prefs_group_route" = "Navegação";
"pref_zoom_title" = "Botões de ampliação";
"pref_left_button_type" = "Left Main Button";
/* Settings «Map» category: «Appearance» title */
"pref_appearance_title" = "Apresentação";
@@ -210,6 +211,9 @@
/* Settings "Appearance" category: "Dark" title, should be consistent with the pref_appearance_title translation. */
"pref_appearance_dark" = "Tons escuros";
/* Generic «Disabled» string */
"disabled" = "Disabled";
/* Generic «Off» string */
"off" = "Desligado";

View File

@@ -200,6 +200,7 @@
"share_my_location" = "Trimite poziția mea";
"prefs_group_route" = "Navigare";
"pref_zoom_title" = "Butoane zoom";
"pref_left_button_type" = "Left Main Button";
/* Settings «Map» category: «Appearance» title */
"pref_appearance_title" = "Aspect";
@@ -210,6 +211,9 @@
/* Settings "Appearance" category: "Dark" title, should be consistent with the pref_appearance_title translation. */
"pref_appearance_dark" = "Întunecat";
/* Generic «Disabled» string */
"disabled" = "Disabled";
/* Generic «Off» string */
"off" = "Oprit";

View File

@@ -200,6 +200,7 @@
"share_my_location" = "Поделиться местоположением";
"prefs_group_route" = "Навигация";
"pref_zoom_title" = "Кнопки масштаба";
"pref_left_button_type" = "Left Main Button";
/* Settings «Map» category: «Appearance» title */
"pref_appearance_title" = "Оформление";
@@ -210,6 +211,9 @@
/* Settings "Appearance" category: "Dark" title, should be consistent with the pref_appearance_title translation. */
"pref_appearance_dark" = "Темное";
/* Generic «Disabled» string */
"disabled" = "Disabled";
/* Generic «Off» string */
"off" = "Выключен";

View File

@@ -200,6 +200,7 @@
"share_my_location" = "Zdieľať moje umiestnenie";
"prefs_group_route" = "Navigácia";
"pref_zoom_title" = "Tlačidlá priblíženia/oddialenia";
"pref_left_button_type" = "Left Main Button";
/* Settings «Map» category: «Appearance» title */
"pref_appearance_title" = "Vzhľad";
@@ -210,6 +211,9 @@
/* Settings "Appearance" category: "Dark" title, should be consistent with the pref_appearance_title translation. */
"pref_appearance_dark" = "Tmavý";
/* Generic «Disabled» string */
"disabled" = "Disabled";
/* Generic «Off» string */
"off" = "Vypnúť";

View File

@@ -200,6 +200,7 @@
"share_my_location" = "Подели моју локацију";
"prefs_group_route" = "Навигација";
"pref_zoom_title" = "Дугме за зумирање";
"pref_left_button_type" = "Left Main Button";
/* Settings «Map» category: «Appearance» title */
"pref_appearance_title" = "Изглед";
@@ -210,6 +211,9 @@
/* Settings "Appearance" category: "Dark" title, should be consistent with the pref_appearance_title translation. */
"pref_appearance_dark" = "Тамно";
/* Generic «Disabled» string */
"disabled" = "Disabled";
/* Generic «Off» string */
"off" = "Искључено";

View File

@@ -200,6 +200,7 @@
"share_my_location" = "Dela min plats";
"prefs_group_route" = "Navigering";
"pref_zoom_title" = "Zoom-knappar";
"pref_left_button_type" = "Left Main Button";
/* Settings «Map» category: «Appearance» title */
"pref_appearance_title" = "Utseende";
@@ -210,6 +211,9 @@
/* Settings "Appearance" category: "Dark" title, should be consistent with the pref_appearance_title translation. */
"pref_appearance_dark" = "Mörkt";
/* Generic «Disabled» string */
"disabled" = "Disabled";
/* Generic «Off» string */
"off" = "Av";

View File

@@ -190,6 +190,7 @@
"share_my_location" = "Share My Location";
"prefs_group_route" = "Navigation";
"pref_zoom_title" = "Zoom buttons";
"pref_left_button_type" = "Left Main Button";
/* Settings «Map» category: «Appearance» title */
"pref_appearance_title" = "Appearance";
@@ -200,6 +201,9 @@
/* Settings "Appearance" category: "Dark" title, should be consistent with the pref_appearance_title translation. */
"pref_appearance_dark" = "Dark";
/* Generic «Disabled» string */
"disabled" = "Disabled";
/* Generic «Off» string */
"off" = "Off";

View File

@@ -200,6 +200,7 @@
"share_my_location" = "แชร์ตำแหน่งที่ตั้งของฉัน";
"prefs_group_route" = "การนำทาง";
"pref_zoom_title" = "ปุ่มซูม";
"pref_left_button_type" = "Left Main Button";
/* Settings «Map» category: «Appearance» title */
"pref_appearance_title" = "รูปแบบ";
@@ -210,6 +211,9 @@
/* Settings "Appearance" category: "Dark" title, should be consistent with the pref_appearance_title translation. */
"pref_appearance_dark" = "มืด";
/* Generic «Disabled» string */
"disabled" = "Disabled";
/* Generic «Off» string */
"off" = "ปิด";

View File

@@ -200,6 +200,7 @@
"share_my_location" = "Konumumu Paylaş";
"prefs_group_route" = "Navigasyon";
"pref_zoom_title" = "Yakınlaştırma düğmeleri";
"pref_left_button_type" = "Left Main Button";
/* Settings «Map» category: «Appearance» title */
"pref_appearance_title" = "Görünüm";
@@ -210,6 +211,9 @@
/* Settings "Appearance" category: "Dark" title, should be consistent with the pref_appearance_title translation. */
"pref_appearance_dark" = "Koyu";
/* Generic «Disabled» string */
"disabled" = "Disabled";
/* Generic «Off» string */
"off" = "Kapalı";

View File

@@ -200,6 +200,7 @@
"share_my_location" = "Поділитися моїм місцезнаходженням";
"prefs_group_route" = "Навігація";
"pref_zoom_title" = "Кнопки трансфокації";
"pref_left_button_type" = "Left Main Button";
/* Settings «Map» category: «Appearance» title */
"pref_appearance_title" = "Вигляд";
@@ -210,6 +211,9 @@
/* Settings "Appearance" category: "Dark" title, should be consistent with the pref_appearance_title translation. */
"pref_appearance_dark" = "Темний";
/* Generic «Disabled» string */
"disabled" = "Disabled";
/* Generic «Off» string */
"off" = "Вимкнуто";

View File

@@ -200,6 +200,7 @@
"share_my_location" = "Chia sẻ Vị trí của tôi";
"prefs_group_route" = "Điều hướng";
"pref_zoom_title" = "Nút Phóng to/Thu nhỏ";
"pref_left_button_type" = "Left Main Button";
/* Settings «Map» category: «Appearance» title */
"pref_appearance_title" = "Giao diện";
@@ -210,6 +211,9 @@
/* Settings "Appearance" category: "Dark" title, should be consistent with the pref_appearance_title translation. */
"pref_appearance_dark" = "Tối";
/* Generic «Disabled» string */
"disabled" = "Disabled";
/* Generic «Off» string */
"off" = "Tắt";

View File

@@ -200,6 +200,7 @@
"share_my_location" = "分享我的位置";
"prefs_group_route" = "导航";
"pref_zoom_title" = "缩放按钮";
"pref_left_button_type" = "Left Main Button";
/* Settings «Map» category: «Appearance» title */
"pref_appearance_title" = "外观";
@@ -210,6 +211,9 @@
/* Settings "Appearance" category: "Dark" title, should be consistent with the pref_appearance_title translation. */
"pref_appearance_dark" = "深色";
/* Generic «Disabled» string */
"disabled" = "Disabled";
/* Generic «Off» string */
"off" = "关闭";

View File

@@ -200,6 +200,7 @@
"share_my_location" = "分享我的位置";
"prefs_group_route" = "導航";
"pref_zoom_title" = "縮放按鈕";
"pref_left_button_type" = "Left Main Button";
/* Settings «Map» category: «Appearance» title */
"pref_appearance_title" = "外觀";
@@ -210,6 +211,9 @@
/* Settings "Appearance" category: "Dark" title, should be consistent with the pref_appearance_title translation. */
"pref_appearance_dark" = "深色";
/* Generic «Disabled» string */
"disabled" = "Disabled";
/* Generic «Off» string */
"off" = "關閉";

View File

@@ -17,6 +17,7 @@
272F1F462E0EEF9400FA52EF /* SafariView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 272F1F452E0EEF8B00FA52EF /* SafariView.swift */; };
2765D1D02E13F9C20005CA2B /* BridgeControllers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2765D1CD2E13F9BC0005CA2B /* BridgeControllers.swift */; };
27768FDB2E20199A0086784A /* RoutingOptionsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27768FD92E20199A0086784A /* RoutingOptionsView.swift */; };
27768FE02E201BE60086784A /* LeftButtonType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27768FDF2E201BE60086784A /* LeftButtonType.swift */; };
279367562E1BE16300AA5C3D /* Settings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 279367552E1BE16300AA5C3D /* Settings.swift */; };
2793675A2E1BE17300AA5C3D /* SettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 279367592E1BE17300AA5C3D /* SettingsView.swift */; };
27AF184C2E1D5B2D00CD41E2 /* SettingsNavigationView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27AF184B2E1D5A2700CD41E2 /* SettingsNavigationView.swift */; };
@@ -777,6 +778,7 @@
272F1F452E0EEF8B00FA52EF /* SafariView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SafariView.swift; sourceTree = "<group>"; };
2765D1CD2E13F9BC0005CA2B /* BridgeControllers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BridgeControllers.swift; sourceTree = "<group>"; };
27768FD92E20199A0086784A /* RoutingOptionsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RoutingOptionsView.swift; sourceTree = "<group>"; };
27768FDF2E201BE60086784A /* LeftButtonType.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LeftButtonType.swift; sourceTree = "<group>"; };
279367552E1BE16300AA5C3D /* Settings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Settings.swift; sourceTree = "<group>"; };
279367592E1BE17300AA5C3D /* SettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = SettingsView.swift; path = UI/Settings/SettingsView.swift; sourceTree = SOURCE_ROOT; };
27AF184B2E1D5A2700CD41E2 /* SettingsNavigationView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsNavigationView.swift; sourceTree = "<group>"; };
@@ -1960,6 +1962,7 @@
isa = PBXGroup;
children = (
27AF184F2E1DB61500CD41E2 /* VoiceRoutingLanguage.swift */,
27768FDF2E201BE60086784A /* LeftButtonType.swift */,
27AF18512E1DB61F00CD41E2 /* DistanceUnit.swift */,
27AF18532E1DB62600CD41E2 /* MobileDataPolicy.swift */,
27AF18552E1DB62F00CD41E2 /* PowerSavingMode.swift */,
@@ -4808,6 +4811,7 @@
471A7BBE2481A3D000A0D4C1 /* EditBookmarkViewController.swift in Sources */,
993DF0C923F6BD0600AC231A /* ElevationDetailsBuilder.swift in Sources */,
674A7E301C0DB10B003D48E1 /* MWMMapWidgets.mm in Sources */,
27768FE02E201BE60086784A /* LeftButtonType.swift in Sources */,
34AB66291FC5AA330078E451 /* RouteManagerViewController.swift in Sources */,
3404754D1E081A4600C92850 /* MWMKeyboard.m in Sources */,
EDE243E52B6D3F400057369B /* OSMView.swift in Sources */,

View File

@@ -0,0 +1,52 @@
extension Settings {
/// The type of the left bottom bar button
enum LeftButtonType: String, Codable, CaseIterable, Identifiable {
case hidden = "Hidden"
case help = "Help"
case addPlace = "AddPlace"
case settings = "Settings"
case recordTrack = "RecordTrack"
// MARK: Properties
/// The id
var id: Self { self }
/// The description text
var description: String {
switch self {
case .hidden:
return L("disabled")
case .help:
return L("help")
case .addPlace:
return L("placepage_add_place_button")
case .settings:
return L("settings")
case .recordTrack:
return L("start_track_recording")
}
}
/// The image
var image: UIImage {
let configuration = UIImage.SymbolConfiguration(pointSize: 22, weight: .semibold)
switch self {
case .help:
return UIImage(systemName: "questionmark", withConfiguration: configuration)!
case .addPlace:
return UIImage(systemName: "plus", withConfiguration: configuration)!
case .settings:
return UIImage(systemName: "gearshape.fill", withConfiguration: configuration)!
case .recordTrack:
return UIImage.MainButtons.LeftButton.recordTrack.withConfiguration(configuration)
default:
return UIImage()
}
}
}
}

View File

@@ -8,6 +8,10 @@ import Combine
static private let userDefaultsKeyHasShownSyncBetaAlert = "kUDDidShowICloudSynchronizationEnablingAlert"
/// Key for storing the type of action used for the bottom left main interface button in the user defaults
static private let userDefaultsKeyLeftButtonType = "LeftButtonType"
/// The current distance unit
static var distanceUnit: DistanceUnit {
get {
@@ -38,6 +42,21 @@ import Combine
}
/// The type of action used for the bottom left main interface button
static var leftButtonType: LeftButtonType {
get {
if let leftButtonTypeRawValue = UserDefaults.standard.string(forKey: userDefaultsKeyLeftButtonType), let leftButtonType = LeftButtonType(rawValue: leftButtonTypeRawValue) {
return leftButtonType
}
return .help
}
set {
UserDefaults.standard.set(newValue.rawValue, forKey: userDefaultsKeyLeftButtonType)
}
}
/// If 3D buildings should be displayed
@objc static var has3dBuildings: Bool {
get {
@@ -287,7 +306,7 @@ import Combine
return RoutingOptions().avoidToll
}
set {
var routingOptions = RoutingOptions()
let routingOptions = RoutingOptions()
routingOptions.avoidToll = newValue
routingOptions.save()
}
@@ -300,7 +319,7 @@ import Combine
return RoutingOptions().avoidDirty
}
set {
var routingOptions = RoutingOptions()
let routingOptions = RoutingOptions()
routingOptions.avoidDirty = newValue
routingOptions.save()
}
@@ -313,7 +332,7 @@ import Combine
return RoutingOptions().avoidFerry
}
set {
var routingOptions = RoutingOptions()
let routingOptions = RoutingOptions()
routingOptions.avoidFerry = newValue
routingOptions.save()
}
@@ -326,7 +345,7 @@ import Combine
return RoutingOptions().avoidMotorway
}
set {
var routingOptions = RoutingOptions()
let routingOptions = RoutingOptions()
routingOptions.avoidMotorway = newValue
routingOptions.save()
}

View File

@@ -1,6 +1,6 @@
protocol BottomTabBarInteractorProtocol: AnyObject {
func openSearch()
func openHelp()
func openLeftButton()
func openFaq()
func openBookmarks()
func openMenu()
@@ -26,9 +26,34 @@ extension BottomTabBarInteractor: BottomTabBarInteractorProtocol {
searchManager.isSearching ? searchManager.close() : searchManager.startSearching(isRouting: false)
}
func openHelp() {
func openLeftButton() {
switch Settings.leftButtonType {
case .addPlace:
if let delegate = controlsManager as? BottomMenuDelegate {
delegate.addPlace()
}
case .settings:
mapViewController?.openSettings()
case .recordTrack:
let mapViewController = MapViewController.shared()!
let trackRecorder: TrackRecordingManager = .shared
switch trackRecorder.recordingState {
case .active:
mapViewController.showTrackRecordingPlacePage()
case .inactive:
trackRecorder.start { result in
switch result {
case .success:
mapViewController.showTrackRecordingPlacePage()
case .failure:
break
}
}
}
default:
MapViewController.shared()?.navigationController?.pushViewController(AboutController(), animated: true)
}
}
func openFaq() {
guard let navigationController = MapViewController.shared()?.navigationController else { return }

View File

@@ -1,7 +1,7 @@
protocol BottomTabBarPresenterProtocol: AnyObject {
func configure()
func onSearchButtonPressed()
func onHelpButtonPressed(withBadge: Bool)
func onLeftButtonPressed(withBadge: Bool)
func onBookmarksButtonPressed()
func onMenuButtonPressed()
}
@@ -22,8 +22,8 @@ extension BottomTabBarPresenter: BottomTabBarPresenterProtocol {
interactor.openSearch()
}
func onHelpButtonPressed(withBadge: Bool) {
withBadge ? interactor.openFaq() : interactor.openHelp()
func onLeftButtonPressed(withBadge: Bool) {
withBadge ? interactor.openFaq() : interactor.openLeftButton()
}
func onBookmarksButtonPressed() {

View File

@@ -5,11 +5,15 @@ class BottomTabBarViewController: UIViewController {
var presenter: BottomTabBarPresenterProtocol!
@IBOutlet var searchButton: MWMButton!
@IBOutlet var helpButton: MWMButton!
@IBOutlet var searchConstraint: NSLayoutConstraint!
@IBOutlet var leftButton: MWMButton!
@IBOutlet var leftButtonConstraint: NSLayoutConstraint!
@IBOutlet var bookmarksButton: MWMButton!
@IBOutlet var bookmarksConstraint: NSLayoutConstraint!
@IBOutlet var moreButton: MWMButton!
@IBOutlet var moreConstraint: NSLayoutConstraint!
@IBOutlet var downloadBadge: UIView!
@IBOutlet var helpBadge: UIView!
@IBOutlet var leftButtonBadge: UIView!
private var avaliableArea = CGRect.zero
@objc var isHidden: Bool = false {
@@ -32,14 +36,17 @@ class BottomTabBarViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
presenter.configure()
NotificationCenter.default.addObserver(forName: UserDefaults.didChangeNotification, object: nil, queue: nil) { _ in
self.updateLeftButton()
}
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
if SettingsBridge.isNY() {
helpButton.setTitle("🎄", for: .normal)
helpButton.setImage(nil, for: .normal)
}
leftButton.imageView?.contentMode = .scaleAspectFit
updateLeftButton()
updateBadge()
}
@@ -51,12 +58,12 @@ class BottomTabBarViewController: UIViewController {
presenter.onSearchButtonPressed()
}
@IBAction func onHelpButtonPressed(_ sender: Any) {
if !helpBadge.isHidden {
presenter.onHelpButtonPressed(withBadge: true)
setHelpBadgeShown()
@IBAction func onLeftButtonPressed(_ sender: Any) {
if !leftButtonBadge.isHidden {
presenter.onLeftButtonPressed(withBadge: true)
setLeftButtonBadgeShown()
} else {
presenter.onHelpButtonPressed(withBadge: false)
presenter.onLeftButtonPressed(withBadge: false)
}
}
@@ -97,19 +104,47 @@ class BottomTabBarViewController: UIViewController {
}
}
private func updateLeftButton() {
NSLayoutConstraint.deactivate([leftButtonConstraint, searchConstraint, bookmarksConstraint, moreConstraint])
let leftButtonType = Settings.leftButtonType
if leftButtonType == .hidden {
leftButton.isHidden = true
leftButtonBadge.isHidden = true
leftButtonConstraint = NSLayoutConstraint(item: leftButtonConstraint.firstItem!, attribute: leftButtonConstraint.firstAttribute, relatedBy: leftButtonConstraint.relation, toItem: leftButtonConstraint.secondItem, attribute: leftButtonConstraint.secondAttribute, multiplier: 0.01, constant: leftButtonConstraint.constant)
searchConstraint = NSLayoutConstraint(item: searchConstraint.firstItem!, attribute: searchConstraint.firstAttribute, relatedBy: searchConstraint.relation, toItem: searchConstraint.secondItem, attribute: searchConstraint.secondAttribute, multiplier: 0.25, constant: searchConstraint.constant)
bookmarksConstraint = NSLayoutConstraint(item: bookmarksConstraint.firstItem!, attribute: bookmarksConstraint.firstAttribute, relatedBy: bookmarksConstraint.relation, toItem: bookmarksConstraint.secondItem, attribute: bookmarksConstraint.secondAttribute, multiplier: 1, constant: bookmarksConstraint.constant)
moreConstraint = NSLayoutConstraint(item: moreConstraint.firstItem!, attribute: moreConstraint.firstAttribute, relatedBy: moreConstraint.relation, toItem: moreConstraint.secondItem, attribute: moreConstraint.secondAttribute, multiplier: 1.75, constant: moreConstraint.constant)
} else {
leftButton.isHidden = false
leftButtonBadge.isHidden = !needsToShowleftButtonBadge()
leftButton.setTitle(nil, for: .normal)
leftButton.setImage(leftButtonType.image, for: .normal)
leftButton.accessibilityLabel = leftButtonType.description;
leftButtonConstraint = NSLayoutConstraint(item: leftButtonConstraint.firstItem!, attribute: leftButtonConstraint.firstAttribute, relatedBy: leftButtonConstraint.relation, toItem: leftButtonConstraint.secondItem, attribute: leftButtonConstraint.secondAttribute, multiplier: 0.25, constant: leftButtonConstraint.constant)
searchConstraint = NSLayoutConstraint(item: searchConstraint.firstItem!, attribute: searchConstraint.firstAttribute, relatedBy: searchConstraint.relation, toItem: searchConstraint.secondItem, attribute: searchConstraint.secondAttribute, multiplier: 0.75, constant: searchConstraint.constant)
bookmarksConstraint = NSLayoutConstraint(item: bookmarksConstraint.firstItem!, attribute: bookmarksConstraint.firstAttribute, relatedBy: bookmarksConstraint.relation, toItem: bookmarksConstraint.secondItem, attribute: bookmarksConstraint.secondAttribute, multiplier: 1.25, constant: bookmarksConstraint.constant)
moreConstraint = NSLayoutConstraint(item: moreConstraint.firstItem!, attribute: moreConstraint.firstAttribute, relatedBy: moreConstraint.relation, toItem: moreConstraint.secondItem, attribute: moreConstraint.secondAttribute, multiplier: 1.75, constant: moreConstraint.constant)
}
NSLayoutConstraint.activate([leftButtonConstraint, searchConstraint, bookmarksConstraint, moreConstraint])
}
private func updateBadge() {
downloadBadge.isHidden = isApplicationBadgeHidden
helpBadge.isHidden = !needsToShowHelpBadge()
leftButtonBadge.isHidden = !needsToShowleftButtonBadge() || Settings.leftButtonType == .hidden
}
}
// MARK: - Help badge
private extension BottomTabBarViewController {
private func needsToShowHelpBadge() -> Bool {
private func needsToShowleftButtonBadge() -> Bool {
!UserDefaults.standard.bool(forKey: kUDDidShowFirstTimeRoutingEducationalHint)
}
private func setHelpBadgeShown() {
private func setLeftButtonBadgeShown() {
UserDefaults.standard.set(true, forKey: kUDDidShowFirstTimeRoutingEducationalHint)
}
}

View File

@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="23091" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="23727" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
<device id="retina6_1" orientation="portrait" appearance="light"/>
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="23079"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="23721"/>
<capability name="Safe area layout guides" minToolsVersion="9.0"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
@@ -11,11 +11,15 @@
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="BottomTabBarViewController" customModule="CoMaps" customModuleProvider="target">
<connections>
<outlet property="bookmarksButton" destination="dgG-ki-3tB" id="md5-3T-9tb"/>
<outlet property="bookmarksConstraint" destination="Jc7-nc-elY" id="znE-nm-2ye"/>
<outlet property="downloadBadge" destination="uDI-ZC-4wx" id="fAf-cy-Ozn"/>
<outlet property="helpBadge" destination="0pe-0n-d1F" id="pua-oN-kIZ"/>
<outlet property="helpButton" destination="dzf-7Z-N6a" id="ORg-VO-5ar"/>
<outlet property="leftButton" destination="dzf-7Z-N6a" id="LMZ-H7-ftQ"/>
<outlet property="leftButtonBadge" destination="0pe-0n-d1F" id="tmx-0P-tch"/>
<outlet property="leftButtonConstraint" destination="u3G-gY-98J" id="l3k-P8-o3h"/>
<outlet property="moreButton" destination="svD-yi-GrZ" id="kjk-ZW-nZN"/>
<outlet property="moreConstraint" destination="Q0b-gd-HwS" id="o6P-Oq-Rr5"/>
<outlet property="searchButton" destination="No0-ld-JX3" id="m5F-UT-j94"/>
<outlet property="searchConstraint" destination="tDb-w1-ueQ" id="3Ud-uq-OFt"/>
<outlet property="view" destination="zuH-WU-hiP" id="eoa-4I-wKs"/>
</connections>
</placeholder>
@@ -27,7 +31,7 @@
<view opaque="NO" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="vum-s3-PHx" userLabel="MainButtons" customClass="ExtendedBottomTabBarContainerView" customModule="CoMaps" customModuleProvider="target">
<rect key="frame" x="0.0" y="0.0" width="373" height="48"/>
<subviews>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="dzf-7Z-N6a" userLabel="Help" customClass="BottomTabBarButton" customModule="CoMaps" customModuleProvider="target">
<button opaque="NO" contentMode="scaleAspectFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="dzf-7Z-N6a" userLabel="LeftButton" customClass="BottomTabBarButton" customModule="CoMaps" customModuleProvider="target">
<rect key="frame" x="22.5" y="0.0" width="48" height="48"/>
<accessibility key="accessibilityConfiguration" identifier="helpButton"/>
<constraints>
@@ -37,10 +41,10 @@
<inset key="imageEdgeInsets" minX="9" minY="9" maxX="9" maxY="9"/>
<state key="normal" image="logo"/>
<connections>
<action selector="onHelpButtonPressed:" destination="-1" eventType="touchUpInside" id="1gx-P2-sRJ"/>
<action selector="onLeftButtonPressed:" destination="-1" eventType="touchUpInside" id="1gx-P2-sRJ"/>
</connections>
</button>
<button opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="249" horizontalCompressionResistancePriority="751" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="No0-ld-JX3" userLabel="Search" customClass="BottomTabBarButton" customModule="CoMaps" customModuleProvider="target">
<button opaque="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="249" horizontalCompressionResistancePriority="751" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="No0-ld-JX3" userLabel="Search" customClass="BottomTabBarButton" customModule="CoMaps" customModuleProvider="target">
<rect key="frame" x="116" y="0.0" width="48" height="48"/>
<accessibility key="accessibilityConfiguration" identifier="searchButton"/>
<constraints>
@@ -52,7 +56,7 @@
<action selector="onSearchButtonPressed:" destination="-1" eventType="touchUpInside" id="0D5-RB-HBQ"/>
</connections>
</button>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="dgG-ki-3tB" userLabel="Bookmarks" customClass="BottomTabBarButton" customModule="CoMaps" customModuleProvider="target">
<button opaque="NO" contentMode="scaleAspectFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="dgG-ki-3tB" userLabel="Bookmarks" customClass="BottomTabBarButton" customModule="CoMaps" customModuleProvider="target">
<rect key="frame" x="209" y="0.0" width="48" height="48"/>
<accessibility key="accessibilityConfiguration" identifier="bookmarksButton"/>
<constraints>
@@ -64,7 +68,7 @@
<action selector="onBookmarksButtonPressed:" destination="-1" eventType="touchUpInside" id="9Z1-eg-xth"/>
</connections>
</button>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="svD-yi-GrZ" userLabel="Menu" customClass="BottomTabBarButton" customModule="CoMaps" customModuleProvider="target">
<button opaque="NO" contentMode="scaleAspectFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="svD-yi-GrZ" userLabel="Menu" customClass="BottomTabBarButton" customModule="CoMaps" customModuleProvider="target">
<rect key="frame" x="302.5" y="0.0" width="48" height="48"/>
<accessibility key="accessibilityConfiguration" identifier="menuButton"/>
<constraints>
@@ -90,7 +94,7 @@
<userDefinedRuntimeAttribute type="string" keyPath="styleName" value="Badge"/>
</userDefinedRuntimeAttributes>
</view>
<view userInteractionEnabled="NO" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="0pe-0n-d1F" userLabel="HelpBadge">
<view userInteractionEnabled="NO" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="0pe-0n-d1F" userLabel="LeftButtonBadge">
<rect key="frame" x="49.5" y="11" width="10" height="10"/>
<color key="backgroundColor" red="1" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<accessibility key="accessibilityConfiguration">
@@ -148,6 +152,6 @@
<image name="ic_menu" width="48" height="48"/>
<image name="ic_menu_bookmark_list" width="48" height="48"/>
<image name="ic_menu_search" width="48" height="48"/>
<image name="logo" width="512" height="512"/>
<image name="logo" width="462" height="512"/>
</resources>
</document>

View File

@@ -16,6 +16,10 @@ struct SettingsView: View {
@State private var hasZoomButtons: Bool = true
/// The selected left button type
@State private var selectedLeftButtonType: Settings.LeftButtonType = .help
/// If 3D buildings should be displayed
@State private var has3dBuildings: Bool = true
@@ -100,6 +104,14 @@ struct SettingsView: View {
Toggle("pref_zoom_title", isOn: $hasZoomButtons)
.tint(.accent)
Picker(selection: $selectedLeftButtonType) {
ForEach(Settings.LeftButtonType.allCases) { leftButtonType in
Text(leftButtonType.description)
}
} label: {
Text("pref_left_button_type")
}
Toggle(isOn: $has3dBuildings) {
VStack(alignment: .leading) {
Text("pref_map_3d_buildings_title")
@@ -239,6 +251,7 @@ struct SettingsView: View {
.onAppear {
selectedDistanceUnit = Settings.distanceUnit
hasZoomButtons = Settings.hasZoomButtons
selectedLeftButtonType = Settings.leftButtonType
has3dBuildings = Settings.has3dBuildings
hasAutomaticDownload = Settings.hasAutomaticDownload
hasIncreasedFontsize = Settings.hasIncreasedFontsize
@@ -256,6 +269,9 @@ struct SettingsView: View {
.onChange(of: hasZoomButtons) { changedHasZoomButtons in
Settings.hasZoomButtons = changedHasZoomButtons
}
.onChange(of: selectedLeftButtonType) { changedSelectedLeftButtonType in
Settings.leftButtonType = changedSelectedLeftButtonType
}
.onChange(of: has3dBuildings) { changedHas3dBuildings in
Settings.has3dBuildings = changedHas3dBuildings
}