From 1580b55db8fa508045f29a8f8a4029e0d20c74d6 Mon Sep 17 00:00:00 2001 From: Zoia Pribytkova Date: Mon, 22 Jul 2019 18:50:29 +0300 Subject: [PATCH] [CarPlay] bug fixes, navigation hierarchy changes, icons and localization fixes --- data/strings/strings.txt | 404 ++++++++++++++++-- .../Maps/Classes/CarPlay/CarPlayRouter.swift | 10 +- .../Maps/Classes/CarPlay/CarPlayService.swift | 35 +- .../SettingsTemplateBuilder.swift | 12 +- iphone/Maps/Classes/MapViewController.mm | 6 +- .../Contents.json | 23 + .../ic_carplay_activated.png | Bin 0 -> 6347 bytes .../ic_carplay_activated@2x.png | Bin 0 -> 14315 bytes .../ic_carplay_activated@3x.png | Bin 0 -> 24073 bytes iphone/Maps/UI/Storyboard/Main.storyboard | 25 +- 10 files changed, 454 insertions(+), 61 deletions(-) create mode 100644 iphone/Maps/Images.xcassets/CarPlay/ic_carplay_activated.imageset/Contents.json create mode 100644 iphone/Maps/Images.xcassets/CarPlay/ic_carplay_activated.imageset/ic_carplay_activated.png create mode 100644 iphone/Maps/Images.xcassets/CarPlay/ic_carplay_activated.imageset/ic_carplay_activated@2x.png create mode 100644 iphone/Maps/Images.xcassets/CarPlay/ic_carplay_activated.imageset/ic_carplay_activated@3x.png diff --git a/data/strings/strings.txt b/data/strings/strings.txt index c25d03b165..69d0067778 100644 --- a/data/strings/strings.txt +++ b/data/strings/strings.txt @@ -40406,38 +40406,38 @@ fa = امکان ایجاد مسیر نیست. لطفاً نقاط مسیر دیگری را مشخص کنید [dialog_routing_download_files_carplay] - en = Some maps required for planning the route are not present. Please, download them on your mobile device - ru = Не все карты, необходимые для построения маршрута, доступны. Пожалуйста, скачайте их в приложении на мобильном устройстве - ar = لا تتواجد جميع الخرائط من أجل تحديد طريق. يرجى تحميلهم على هاتفك المحمول - cs = K sestavení trasy nejsou přítomny žádné mapy. Stáhněte si je prosím na váš mobilní telefon - da = Der mangler kort for at beregne en rute. Download dem på din mobiltelefon - nl = Niet alle kaarten zijn beschikbaar voor het opbouwen van een route. Download ze in de applicatie op uw smartphone - fi = Kaikki kartat eivät ole käytettävissä reitin luomiseen. Lataa ne puhelimen sovellukseen - fr = Pas toutes les cartes sont disponibles pour tracer un itinéraire. Téléchargez-les dans l'application sur le téléphone - de = Nicht alle Karten sind für Routenplanung zugänglich. Laden Sie sie in der App auf Ihrem Handy herunter - hu = Nincs meg minden térkép egy útvonal tervezéséhez. Kérjük töltsd le a mobiltelefonodra őket - id = Tidak semua peta dapat dibuat rute. Silakan unduh peta ke ponsel Anda - it = Non tutte le mappe sono disponibili per pianificare il percorso. Scaricale in App - ja = ルートを構築するために全てのマップが表示されているわけではありません。携帯電話にそれらをダウンロードしてください - ko = 모든 지도가 경로를 만들기 위해 존재하는 것은 아닙니다. 귀하의 모바일 폰으로 지도들을 다운로드 해주세요 - nb = Ikke alle kart tilgjengeliig for å planlegge rute. Vennligst last dem ned på din mobil - pl = Nie wszystkie mapy są dostępne do budowania trasy. Pobierz je w aplikacji na telefon - pt = Alguns mapas estão indisponíveis para criar percurso. Baixe-os no aplicação do telefone - pt-BR = Não é possível traçar rotas em todos os mapas. Por favor, baixe-os em seu celular - ro = Nu toate hărțile sunt accesibile pentru elaborarea traseului. Descărcați-le în aplicația de pe telefon - es = No todos los mapas están disponibles para trazar una ruta. Descárgalos en la aplicación de tu teléfono - es-MX = No todos los mapas están disponibles para construir una ruta. Descárguelos en la aplicación de su teléfono - sv = Inte alla kartor finns tillgängliga för att bygga en rutt. Ladda ner dem i appen på telefonen - th = แผนที่ที่ใช้สร้างเส้นทางยังได้รับการโหลดไม่ครบ โปรดดาวน์โหลดแผนที่เหล่านั้นจากโทรศัพท์มือถือของคุณ - tr = Rota oluşturmak için gereken tüm haritalar mevcut değil. Lütfen bunları cep telefonunuza indirin - uk = Не всі карти доступні для побудування маршруту. Завантажте їх в додатку на телефоні - vi = Không phải tất cả bản đồ đều khả dụng để tạo tuyến đường. Hãy tải ứng dụng về điện thoại của bạn - el = Δεν είναι διαθέσιμοι όλοι οι χάρτες για τη δημιουργία της διαδρομής. Κατεβάστε τους από την εφαρμογή στο κινητό σας τηλέφωνο - sk = Nie všetky mapy sú k dispozícii pre vytvorenie trasy. Prosím stiahnite si ich na svojom mobilnom telefóne - sw = Ramani zote hazipo kuunda njia. Tafadhali zipakue kwenye simu yako ya mkononi - zh-Hans = 并非所有地图都可用于创建路线。请在手机的应用程序中下载它们 - zh-Hant = 並非所有地圖都可用於創建路線。請在手機的應用程序中下載它們 - fa = همه نقشه ها برای ایجاد یک مسیر موجود نیست. لطفا آنها را بر روی تلفن همراه خود دانلود کنید + en = To create a route, download missing maps on your device + ru = Чтобы построить маршрут, загрузите недостающие карты на своем устройстве + ar = كي تُنشئ مساراً، يجب أن تحمل الخرائط المفقودة على جهازك + cs = K vytvoření trasy si stáhněte chybějící mapy do vašeho zařízení + da = Download manglende kort til din enhed, for at lave ruten + nl = Om een route te bouwen, download u ontbrekende kaarten + fi = Luodaksesi reitin lataa puutt. kartat + fr = Pour créer la route, téléchargez les cartes sur votre appareil + de = Laden Sie die fehlenden Karten hoch, um die Route zu erstellen + hu = Útvonal létrehozásához töltsd le a hiányzó térképeket az eszközre + id = Untuk membuat rute, unduh peta baru di perangkat anda + it = Per creare percorso scarica mappe mancanti sul proprio dispositivo + ja = ルートを作成するには、地図に表示されていない部分を端末でダウンロードします + ko = 루트를 만들려면, 빠진 맵을 기기에 다운로드하세요 + nb = For å beregne rute last ned manglende kart på enheten din + pl = Aby wyznaczyć trasę, pobierz brakujące mapy na Twoim urządzeniu + pt = Para construir percurso falta carregar os mapas no seu dispositivo + pt-BR = Para criar uma rota, baixe os mapas ausentes no seu dispositivo + ro = Pentru noi trasee, încărcați hărțile lipsa pe dispozitivul dvs. + es = Al construir ruta, descarga los mapas ausentes en tu dispositivo + es-MX = Al construir ruta, descargue los mapas ausentes en su dispositivo + sv = För att skapa en rutt, ladda ner saknade kartor på din enhet + th = เพื่อสร้างเส้นทาง โปรดดาวน์โหลดแผนที่บนอุปกรณ์ของคุณ + tr = Rota oluşturmak için cihazınızdaki eksik haritaları indirin + uk = Щоб побудувати маршрут, завантажте відсутні карти на своєму пристрої + vi = Để tạo tuyến đường, hãy tải xuống các bản đồ còn thiếu về thiết bị + el = Για να χτίσετε διαδρομή, κατεβάστε χάρτες που λείπουν στη συσκευή + sk = Pre vytvorenie trasy si stiahnite do zariadenia chýbajúce mapy + sw = Kuunda njia, pakua ramani zilizokosekana kwenye kifaa chako + zh-Hans = 为了创建线路,请在您的设备中下载所缺少的地图 + zh-Hant = 爲了創建線路,請在您的設備中下載所缺少的地圖 + fa = برای ایجاد مسیر، نقشه های ناقص را روی دستگاه خود را دانلود کنید [dialog_routing_system_error_carplay] en = An error occurred. Please restart the application @@ -41974,3 +41974,343 @@ zh-Hans = 我们优化了距离道路较远的目标地点的线路设置 zh-Hant = 我們優化了距離道路較遠的目標地點的線路設置 fa = مسیر برنامه ریزی به نقاطی دور از جاده‌ها بهبود داده ایم + + [avoid_unpaved_carplay_1] + en = No dirt road + ru = Без грунт. + ar = غير ترابي + cs = Bez pr. cest + da = Ingen grus + nl = Geen aardew. + fi = Päällyste + fr = Route de ter + de = Ohne Landstr + hu = Nem földút + id = Jalan aspal + it = No sterrati + ja = 未舗装道路無し + ko = 비포장 도로 없음 + nb = Ikke grusvei + pl = Bez gruntow. + pt = Sem rurais + pt-BR = Não pav. + ro = Fără neasfal + es = Sin de grava + es-MX = Sin de grava + sv = Utan kärrväg + th = ไม่มีลูกรัง + tr = Stabilizesiz + uk = Без ґрунт. + vi = Trừ đườg đất + el = Χ/χωματόδρ. + sk = Nespevn. NIE + sw = Hamna za vum + zh-Hans = 无土路路段 + zh-Hant = 無土路路段 + fa = بی جاده خاکی + + [avoid_unpaved_carplay_2] + en = Avoid unpaved + ru = Без грунтовых + ar = تجنب غير الممهد + cs = Vyhnout se nezp + da = Undgå grus + nl = Geen aardewegen + fi = Vain päällyste + fr = Route de terre + de = Ohne Landstr. + hu = Földút kerülése + id = Hindari tanah + it = No sterrati + ja = 未舗装道路無し + ko = 비포장 도로 없음 + nb = Ikke uasfaltert + pl = Bez gruntowych + pt = Sem rurais + pt-BR = Evitar não pav. + ro = Fără neasfaltat + es = Sin de grava + es-MX = Sin de grava + sv = Utan kärrvägar + th = หลีกเลี่ยงทาง + tr = Asfaltsız hariç + uk = Без ґрунтових + vi = Trừ khôg trnhựa + el = Χ/χωματόδρομους + sk = Nespevnené ÁNO + sw = Epuka za vumbi + zh-Hans = 无土路路段 + zh-Hant = 無土路路段 + fa = پرهیز از خاکی + + [avoid_ferry_carplay_1] + en = No ferries + ru = Без паромов + ar = بدون عبََارة + cs = Bez trajektů + da = Ingen færger + nl = Geen ferry's + fi = Ei lauttoja + fr = Sans navires + de = Ohne Fähren + hu = Komp nélkül + id = Tanpa feri + it = No traghetti + ja = フェリー無し + ko = 여객선 없음 + nb = Ingen ferger + pl = Bez promów + pt = Sem ferry + pt-BR = Sem balsas + ro = Fără bacuri + es = Sin ferri + es-MX = Sin ferri + sv = Utan färjor + th = ไม่มีเรือ + tr = Feribotsuz + uk = Без поромів + vi = Không có phà + el = Χ/πορθμεία + sk = Trajekty NIE + sw = Hamna feri + zh-Hans = 无渡船 + zh-Hant = 無渡船 + fa = بدون بزرگراه + + [avoid_ferry_carplay_2] + en = Avoid ferries + ru = Без паромов + ar = تجنب العبََارة + cs = Vyh. se traj. + da = Undgå færger + nl = Geen ferry's + fi = Ei lauttoja + fr = Sans navires + de = Ohne Fähren + hu = Kompok kerülése + id = Hindari feri + it = No traghetti + ja = フェリーを回避 + ko = 여객선 없음 + nb = Unngå ferger + pl = Bez promów + pt = Sem ferry + pt-BR = Evitar balsas + ro = Fără bacuri + es = Sin ferri + es-MX = Sin ferri + sv = Utan färjor + th = หลีกเลี่ยงเรือ + tr = Feribot hariç + uk = Без поромів + vi = Trừ phà + el = Χωρίς πορθμεία + sk = Trajekty ÁNO + sw = Epuka feri + zh-Hans = 无渡船 + zh-Hant = 無渡船 + fa = پرهیز از اتوبان + + [avoid_tolls_carplay_1] + en = No toll road + ru = Без платных + ar = بدون رسوم + cs = Bez pl.sil. + da = Ingen betal. + nl = Zonder tol + fi = Ei maksua + fr = Sans péage + de = Ohne kpf Str + hu = Nincs útdíj + id = Tanpa tol + it = No pedaggi + ja = 有料道路無し + ko = 유료 도로 없음 + nb = Ingen bomvei + pl = Wył. płatne + pt = Sem pedágio + pt-BR = Sem pedágio + ro = Gratis + es = Sin peaje + es-MX = Sin peaje + sv = Utan betalda + th = ไม่มีค่าผ่าน + tr = Paralı yok + uk = Без платних + vi = Khôg đgcóphí + el = Χωρίς διόδια + sk = Spoplat. NIE + sw = Hamna za ada + zh-Hans = 无付费路段 + zh-Hant = 無付費路段 + fa = بدون عوارضی + + [avoid_tolls_carplay_2] + en = Avoid toll road + ru = Без платных + ar = تجنب الرسوم + cs = Vyh. se pl. sil + da = Undgå betaling + nl = Zonder tol + fi = Ei maksua + fr = Sans péage + de = Ohne kpfl. Str. + hu = Útdíj kerülése + id = Hindari tol + it = Senza pedaggi + ja = 有料道路を回避 + ko = 유료 도로 없음 + nb = Unngå bomvei + pl = Wyłącz płatne + pt = Sem pedágio + pt-BR = Evitar pedágios + ro = Gratis + es = Sin peaje + es-MX = Sin peaje + sv = Utan betalda + th = เลี่ยงทางด่วน + tr = Paralı hariç + uk = Без платних + vi = Trừ đg có phí + el = Χωρίς διόδια + sk = Spoplatnené ÁNO + sw = Epuka njia-kodi + zh-Hans = 无付费路段 + zh-Hant = 無付費路段 + fa = اجتناب از عوارض + + [speedcams_alert_title_carplay_1] + en = Speedсams + ru = Камеры + ar = كاميرا سريعة + cs = Rych. kam. + da = Radarkontrol + nl = Cameras + fi = Nopeuskamera + fr = Caméras + de = Blitzer + hu = Traffipaxok + id = Speedcam + it = Autovelox + ja = 速度警告 + ko = 속도단속 카메라 + nb = Kamera-info + pl = Kamery + pt = Radares + pt-BR = Radares + ro = Cameră video + es = Cám.velocid. + es-MX = Cám.velocid. + sv = Kameror + th = จับความเร็ว + tr = Hız kamerası + uk = Камери + vi = Сam tốc độ + el = Κάμερες + sk = Radary + sw = Kam za kasi + zh-Hans = 摄像头 + zh-Hant = 攝像頭 + fa = دوربین سرعت + + [speedcams_alert_title_carplay_2] + en = Speed warnings + ru = Инфо о камерах + ar = تحذير سريع + cs = Rych. varování + da = Radar advarsel + nl = Over cameras + fi = Nopeuskamerat + fr = Info Caméras + de = Blitzerwarnung + hu = Sebességjelzés + id = Info kecepatan + it = Info autovelox + ja = 速度警告 + ko = 속도단속 카메라 + nb = Kamera-advarsel + pl = Info o kamerach + pt = Avisos de radar + pt-BR = Alertas de vel. + ro = Info camere + es = Alerta velocid. + es-MX = Alerta velocid. + sv = Info om kameror + th = เตือนความเร็ว + tr = Hız uyarıları + uk = Інфо о камерах + vi = Cảnh báo tốc độ + el = Πληροφ. γιαόρια + sk = Rýchl. upozorn. + sw = Onyo la kasi + zh-Hans = 摄像头信息 + zh-Hant = 攝像頭信息 + fa = هشدارهای سرعت + + [download_map_carplay] + en = Please download maps in MAPS.ME app on your device + ru = Скачайте карты в приложении MAPS.ME на своем устройстве + ar = يُرجى تحميل الخرائط في تطبيق MAPS.ME على جهازك + cs = Stáhněte si prosím mapy do aplikace MAPS.ME ve vašem zařízení + da = Download kort i MAPS.ME appen, på din enhed + nl = Download kaarten in de MAPS.ME app op uw apparaat + fi = Lataa kartat laitteesi MAPS.ME-sovelluksessa + fr = Téléchargez des cartes dans l'application MAPS.ME sur votre appareil + de = Laden Sie Karten in der App MAPS.ME auf Ihrem Gerät herunter + hu = Kérjük, töltsd le a térképeket a MAPS.ME alkalmazásban az eszközödre + id = Silakan unduh peta di apl MAPS.ME pada perangkat Anda + it = Scarica l'applicazione MAPS.ME sul tuo smartphone + ja = あなたの機器のMAPS.MEのアプリにマップをダウンロードしてください + ko = MAPS.ME 앱 안의 지도들을 디바이스에 다운로드하세요 + nb = Vennligst last ned kart i MAPS.ME appen på enheten din + pl = Pobierz mapy do aplikacji MAPS.ME na swoje urządzenie + pt = Baixar mapas de aplicação MAPS.ME para o seu dispositivo + pt-BR = Por favor, baixe mapas no app MAPS.ME em seu dispositivo + ro = Vă rugăm să descărcați hărțile în aplicația MAPS.ME de pe dispozitivul dvs. + es = Descarga mapas en la aplicación MAPS.ME en tu dispositivo + es-MX = Descargue mapas en la aplicación MAPS.ME en su dispositivo + sv = Ladda ner kartor i applikation MAPS.ME på din enhet + th = โปรดดาวน์โหลดแผนที่ในแอพฯ MAPS.ME บนอุปกรณ์ของคุณ + tr = Lütfen haritaları cihazınıza MAPS.ME uygulamasından indirin + uk = Завантажте карти в додатку MAPS.ME на своєму пристрої + vi = Vui lòng tải xuống bản đồ trong ứng dụng MAPS.ME trên thiết bị của bạn + el = Κάντε λήψη χαρτών στην εφαρμογή MAPS.ME στη συσκευή σας + sk = Prosím stiahnite si mapy v aplikácii MAPS.ME vo vašom zariadení + sw = Tafadhali pakua ramani katika programu tumizi ya MAPS.ME kwenye kifaa chako + zh-Hans = 将MAPS.ME软件中的地图下载至个人设备中 + zh-Hant = 將MAPS.ME軟件中的地圖下載至個人設備中 + fa = لطفا نقشه ها را در نرم افزار MAPS.ME روی دستگاه خود دانلود کنید + + [carplay_roundabout_exit] + en = %s exit + ru = %s съезд + ar = المخرج رقم %s + cs = %s výjezd + da = %s exit + nl = Afrit nr. %s + fi = Poistumisramppi %s + fr = %s sortie + de = %s Ausfahrt + hu = %s kijárat + id = Jalan keluar ke %s + it = %s uscita + ja = 第%s出口 + ko = %s번 출구 + nb = %s avkjøring + pl = %s zjazd + pt = %s saída + pt-BR = %s saída + ro = %s ieșire + es = %s desviación + es-MX = %s desviación + sv = %s utgången + th = ทางออกที่ %s + tr = %s çıkış + uk = %s з’їзд + vi = Lối ra %s của vòng xuyến + el = %s έξοδος + sk = %s výjazd + sw = Kutoka kwa %s + zh-Hans = %s号坡道 + zh-Hant = %s號坡道 + fa = خروجی %s diff --git a/iphone/Maps/Classes/CarPlay/CarPlayRouter.swift b/iphone/Maps/Classes/CarPlay/CarPlayRouter.swift index c392aaa562..f2dcc8675c 100644 --- a/iphone/Maps/Classes/CarPlay/CarPlayRouter.swift +++ b/iphone/Maps/Classes/CarPlay/CarPlayRouter.swift @@ -237,7 +237,15 @@ extension CarPlayRouter { var maneuvers = [CPManeuver]() let primaryManeuver = CPManeuver() primaryManeuver.userInfo = CPConstants.Maneuvers.primary - primaryManeuver.instructionVariants = [routeInfo.streetName] + var instructionVariant = routeInfo.streetName + if routeInfo.roundExitNumber != 0 { + let ordinalExitNumber = NumberFormatter.localizedString(from: NSNumber(value: routeInfo.roundExitNumber), + number: .ordinal) + let exitNumber = String(coreFormat: L("carplay_roundabout_exit"), + arguments: [ordinalExitNumber]) + instructionVariant = instructionVariant.isEmpty ? exitNumber : (exitNumber + ", " + instructionVariant) + } + primaryManeuver.instructionVariants = [instructionVariant] if let imageName = routeInfo.turnImageName, let symbol = UIImage(named: imageName) { primaryManeuver.symbolSet = CPImageSet(lightContentImage: symbol, diff --git a/iphone/Maps/Classes/CarPlay/CarPlayService.swift b/iphone/Maps/Classes/CarPlay/CarPlayService.swift index 86bd6743d9..7f34946bf7 100644 --- a/iphone/Maps/Classes/CarPlay/CarPlayService.swift +++ b/iphone/Maps/Classes/CarPlay/CarPlayService.swift @@ -306,7 +306,7 @@ extension CarPlayService: CPMapTemplateDelegate { FrameworkHelper.stopLocationFollow() } - public func mapTemplateWillDismissPanningInterface(_ mapTemplate: CPMapTemplate) { + public func mapTemplateDidDismissPanningInterface(_ mapTemplate: CPMapTemplate) { if let info = mapTemplate.userInfo as? MapInfo, info.type == CPConstants.TemplateType.navigation { MapTemplateBuilder.configureNavigationUI(mapTemplate: mapTemplate) @@ -535,13 +535,15 @@ extension CarPlayService: LocationModeListener { } switch mode { case .follow, .followAndRotate: - MapTemplateBuilder.setupDestinationButton(mapTemplate: rootMapTemplate) + if !rootMapTemplate.isPanningInterfaceVisible { + MapTemplateBuilder.setupDestinationButton(mapTemplate: rootMapTemplate) + } case .notFollow: if !rootMapTemplate.isPanningInterfaceVisible { MapTemplateBuilder.setupRecenterButton(mapTemplate: rootMapTemplate) } - default: - break + case .pendingPosition, .notFollowNoPosition: + rootMapTemplate.leadingNavigationBarButtons = [] } } @@ -597,7 +599,11 @@ extension CarPlayService { func preparePreview(trips: [CPTrip]) { let mapTemplate = MapTemplateBuilder.buildTripPreviewTemplate(forTrips: trips) - pushTemplate(mapTemplate, animated: false) + if let interfaceController = interfaceController { + mapTemplate.mapDelegate = self + interfaceController.popToRootTemplate(animated: false) + interfaceController.pushTemplate(mapTemplate, animated: false) + } } func showPreview(mapTemplate: CPMapTemplate, trips: [CPTrip]) { @@ -658,13 +664,23 @@ extension CarPlayService { titleVariants = ["\(L("dialog_routing_change_start_carplay"))"] case .endPointNotFound: titleVariants = ["\(L("dialog_routing_change_end_carplay"))"] - case .routeNotFoundRedressRouteError, .routeNotFound, .inconsistentMWMandRoute: + case .routeNotFoundRedressRouteError, + .routeNotFound, + .inconsistentMWMandRoute: titleVariants = ["\(L("dialog_routing_unable_locate_route_carplay"))"] - case .routeFileNotExist, .fileTooOld, .needMoreMaps, .pointsInDifferentMWM: + case .routeFileNotExist, + .fileTooOld, + .needMoreMaps, + .pointsInDifferentMWM: titleVariants = ["\(L("dialog_routing_download_files_carplay"))"] - case .internalError: + case .internalError, + .intermediatePointNotFound: titleVariants = ["\(L("dialog_routing_system_error_carplay"))"] - default: + case .noError, + .cancelled, + .hasWarnings, + .transitRouteNotFoundNoNetwork, + .transitRouteNotFoundTooLongPedestrian: return } @@ -689,6 +705,7 @@ extension CarPlayService { self.interfaceController?.dismissTemplate(animated: true) }) let noAction = CPAlertAction(title: L("cancel"), style: .cancel, handler: { [unowned self] _ in + FrameworkHelper.stopLocationFollow() self.router?.completeRouteAndRemovePoints() self.interfaceController?.dismissTemplate(animated: true) }) diff --git a/iphone/Maps/Classes/CarPlay/Template Builders/SettingsTemplateBuilder.swift b/iphone/Maps/Classes/CarPlay/Template Builders/SettingsTemplateBuilder.swift index 9cd734b4c0..e8cd9c0480 100644 --- a/iphone/Maps/Classes/CarPlay/Template Builders/SettingsTemplateBuilder.swift +++ b/iphone/Maps/Classes/CarPlay/Template Builders/SettingsTemplateBuilder.swift @@ -24,7 +24,8 @@ final class SettingsTemplateBuilder { private class func createTollButton(options: RoutingOptions) -> CPGridButton { var tollIconName = "ic_carplay_toll" if options.avoidToll { tollIconName += "_active" } - let tollButton = CPGridButton(titleVariants: [L("avoid_tolls")], + let tollButton = CPGridButton(titleVariants: [L("avoid_tolls_carplay_1"), + L("avoid_tolls_carplay_2")], image: UIImage(named: tollIconName)!) { _ in options.avoidToll = !options.avoidToll options.save() @@ -40,7 +41,8 @@ final class SettingsTemplateBuilder { private class func createUnpavedButton(options: RoutingOptions) -> CPGridButton { var unpavedIconName = "ic_carplay_unpaved" if options.avoidDirty { unpavedIconName += "_active" } - let unpavedButton = CPGridButton(titleVariants: [L("avoid_unpaved")], + let unpavedButton = CPGridButton(titleVariants: [L("avoid_unpaved_carplay_1"), + L("avoid_unpaved_carplay_2")], image: UIImage(named: unpavedIconName)!) { _ in options.avoidDirty = !options.avoidDirty options.save() @@ -56,7 +58,8 @@ final class SettingsTemplateBuilder { private class func createFerryButton(options: RoutingOptions) -> CPGridButton { var ferryIconName = "ic_carplay_ferry" if options.avoidFerry { ferryIconName += "_active" } - let ferryButton = CPGridButton(titleVariants: [L("avoid_ferry")], + let ferryButton = CPGridButton(titleVariants: [L("avoid_ferry_carplay_1"), + L("avoid_ferry_carplay_2")], image: UIImage(named: ferryIconName)!) { _ in options.avoidFerry = !options.avoidFerry options.save() @@ -88,7 +91,8 @@ final class SettingsTemplateBuilder { var speedcamIconName = "ic_carplay_speedcam" let isSpeedCamActivated = CarPlayService.shared.isSpeedCamActivated if isSpeedCamActivated { speedcamIconName += "_active" } - let speedButton = CPGridButton(titleVariants: [L("speedcams_alert_title")], + let speedButton = CPGridButton(titleVariants: [L("speedcams_alert_title_carplay_1"), + L("speedcams_alert_title_carplay_2")], image: UIImage(named: speedcamIconName)!) { _ in CarPlayService.shared.isSpeedCamActivated = !isSpeedCamActivated CarPlayService.shared.popTemplate(animated: true) diff --git a/iphone/Maps/Classes/MapViewController.mm b/iphone/Maps/Classes/MapViewController.mm index 8734b71ada..6860e2d7f4 100644 --- a/iphone/Maps/Classes/MapViewController.mm +++ b/iphone/Maps/Classes/MapViewController.mm @@ -96,7 +96,7 @@ NSString * const kHotelFacilitiesSegue = @"Map2FacilitiesSegue"; @property(strong, nonatomic) IBOutlet NSLayoutConstraint * placePageAreaKeyboard; @property(strong, nonatomic) IBOutlet NSLayoutConstraint * sideButtonsAreaBottom; @property(strong, nonatomic) IBOutlet NSLayoutConstraint * sideButtonsAreaKeyboard; -@property(strong, nonatomic) IBOutlet UILabel * carplayPlaceholderLabel; +@property(strong, nonatomic) IBOutlet UIImageView * carplayPlaceholderLogo; @property(strong, nonatomic) NSHashTable> *listeners; @@ -798,7 +798,7 @@ NSString * const kHotelFacilitiesSegue = @"Map2FacilitiesSegue"; - (void)disableCarPlayRepresentation { - self.carplayPlaceholderLabel.hidden = YES; + self.carplayPlaceholderLogo.hidden = YES; self.mapView.frame = self.view.bounds; [self.view insertSubview:self.mapView atIndex:0]; [[self.mapView.topAnchor constraintEqualToAnchor:self.view.topAnchor] setActive:YES]; @@ -820,7 +820,7 @@ NSString * const kHotelFacilitiesSegue = @"Map2FacilitiesSegue"; if (!self.controlsView.isHidden) { self.controlsView.hidden = YES; } - self.carplayPlaceholderLabel.hidden = NO; + self.carplayPlaceholderLogo.hidden = NO; } @end diff --git a/iphone/Maps/Images.xcassets/CarPlay/ic_carplay_activated.imageset/Contents.json b/iphone/Maps/Images.xcassets/CarPlay/ic_carplay_activated.imageset/Contents.json new file mode 100644 index 0000000000..b57405f366 --- /dev/null +++ b/iphone/Maps/Images.xcassets/CarPlay/ic_carplay_activated.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "ic_carplay_activated.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "ic_carplay_activated@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "ic_carplay_activated@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/iphone/Maps/Images.xcassets/CarPlay/ic_carplay_activated.imageset/ic_carplay_activated.png b/iphone/Maps/Images.xcassets/CarPlay/ic_carplay_activated.imageset/ic_carplay_activated.png new file mode 100644 index 0000000000000000000000000000000000000000..00bef84c12d6663350515125ebbb031f2b2c7a86 GIT binary patch literal 6347 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 N002ovPDHLkV1jv64MhL| literal 0 HcmV?d00001 diff --git a/iphone/Maps/Images.xcassets/CarPlay/ic_carplay_activated.imageset/ic_carplay_activated@2x.png b/iphone/Maps/Images.xcassets/CarPlay/ic_carplay_activated.imageset/ic_carplay_activated@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..0b6616aac605b515bdd7fcffaee2e34ede0bb8ca GIT binary patch literal 14315 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 literal 0 HcmV?d00001 diff --git a/iphone/Maps/UI/Storyboard/Main.storyboard b/iphone/Maps/UI/Storyboard/Main.storyboard index ef55a678fe..393b3312b4 100644 --- a/iphone/Maps/UI/Storyboard/Main.storyboard +++ b/iphone/Maps/UI/Storyboard/Main.storyboard @@ -1,11 +1,11 @@ - + - + @@ -18,12 +18,13 @@ - + @@ -84,11 +85,11 @@ + - - + @@ -107,14 +108,13 @@ - - + @@ -1480,6 +1480,7 @@ +