Skip to content

CarPlay iOS xcode15.3 b1

Alex Soto edited this page May 21, 2024 · 2 revisions

#CarPlay.framework https://github.com/xamarin/xamarin-macios/pull/20097

diff -ruN /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CarPlay.framework/Headers/CPLane.h /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CarPlay.framework/Headers/CPLane.h
--- /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CarPlay.framework/Headers/CPLane.h	1969-12-31 19:00:00
+++ /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CarPlay.framework/Headers/CPLane.h	2024-01-19 03:46:55
@@ -0,0 +1,41 @@
+//
+//  CPLane.h
+//  CarPlay
+//
+//  Copyright © 2023 Apple Inc. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+typedef NS_ENUM(NSInteger, CPLaneStatus)
+{
+    CPLaneStatusNotGood = 0,
+    CPLaneStatusGood,
+    CPLaneStatusPreferred
+} API_AVAILABLE(ios(17.4));
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ @c CPLane represents information about a single lane.
+ */
+API_AVAILABLE(ios(17.4))
+@interface CPLane : NSObject <NSCopying, NSSecureCoding>
+
+/**
+ status is a @c CPLaneStatus representing the status of this lane.
+ */
+@property (nonatomic, assign) CPLaneStatus status API_AVAILABLE(ios(17.4));
+
+/**
+ primaryAngle is the angle to be highlighted if this lane is preferred or good. If primaryAngle is present it can not be included in secondaryAngles.
+ */
+@property (nonatomic, strong) NSMeasurement<NSUnitAngle *> *primaryAngle API_AVAILABLE(ios(17.4));
+
+/**
+ secondaryAngles is a list of the remaining angles of this lane guidance.
+ */
+@property (nonatomic, strong) NSArray<NSMeasurement<NSUnitAngle *> *> *secondaryAngles API_AVAILABLE(ios(17.4));
+@end
+
+NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CarPlay.framework/Headers/CPLaneGuidance.h /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CarPlay.framework/Headers/CPLaneGuidance.h
--- /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CarPlay.framework/Headers/CPLaneGuidance.h	1969-12-31 19:00:00
+++ /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CarPlay.framework/Headers/CPLaneGuidance.h	2024-01-19 03:46:56
@@ -0,0 +1,31 @@
+//
+//  CPLaneGuidance.h
+//  CarPlay
+//
+//  Copyright © 2023 Apple Inc. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+#import <CarPlay/CPLane.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ @c CPLaneGuidance represents guidance to give the user which lane or lanes are preferred.
+ */
+API_AVAILABLE(ios(17.4))
+@interface CPLaneGuidance : NSObject <NSCopying, NSSecureCoding>
+
+/**
+ lanes is an array of @c CPLane objects, each describes a single lane.
+*/
+@property (nonatomic, copy) NSArray<CPLane *> *lanes API_AVAILABLE(ios(17.4));
+
+/**
+ instructionVariants is an array of @c NSString representing the instruction for this lane guidance, arranged from most to least preferred. You must provide at least one variant.
+ The variant strings should be provided as localized, displayable content.
+*/
+@property (nonatomic, copy) NSArray<NSString *> *instructionVariants API_AVAILABLE(ios(17.4));
+@end
+
+NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CarPlay.framework/Headers/CPListImageRowItem.h /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CarPlay.framework/Headers/CPListImageRowItem.h
--- /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CarPlay.framework/Headers/CPListImageRowItem.h	2023-11-12 13:13:28
+++ /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CarPlay.framework/Headers/CPListImageRowItem.h	2024-01-19 03:46:55
@@ -37,9 +37,34 @@
  @discussion To properly size your images, your app should size them to the display scale of the car screen.
  See -[CPInterfaceController carTraitCollection].
  */
-- (instancetype)initWithText:(NSString *)text images:(NSArray<UIImage *> *)images;
+- (instancetype)initWithText:(NSString *)text 
+                      images:(NSArray<UIImage *> *)images;
 
 /**
+ Initialize a list image row item with a text string, an array of @c UIImage
+ for the grid of images, and an array of @c NSString titles, one displayed below each image.
+
+ The number of titles in the @c imageTitles list should be equal to the number of images in the
+ @c images list.
+
+ When providing an image, your app should provide a @c UIImage that is display-ready. If necessary for the image, provide
+ light and dark styles by using an asset from your asset catalog, prepared with light and dark styles
+ or by using @c UIImageAsset to combine two @c UIImage instances into a single image with
+ both styles.
+
+ UIImageAsset is used to combine multiple UIImages with different trait collections into a single UIImage.
+
+ @note The expected image size is given by +[CPListImageRowItem maximumImageSize]. Images provided
+ will be resized to this size if necessary.
+
+ @discussion To properly size your images, your app should size them to the display scale of the car screen.
+ See -[CPInterfaceController carTraitCollection].
+ */
+- (instancetype)initWithText:(NSString *)text
+                      images:(NSArray<UIImage *> *)images
+                 imageTitles:(NSArray<NSString *> *)imageTitles API_AVAILABLE(ios(17.4));
+
+/**
  The primary text shown in a cell displaying this list item.
  */
 @property (nonatomic, copy, nullable) NSString *text;
@@ -84,8 +109,20 @@
  
  @see To update/reload the title of the image row item, assign to
  the @c text property of the image row item.
+ @see To update/reload the title labels displayed below each image, assign to
+ the @c imageTitles property of the image row item.
  */
 - (void)updateImages:(NSArray <UIImage *> *)gridImages;
+
+/**
+ Update the titles displayed each image in this image row item. If this image row
+ item is already displayed in a list template, then it will be automatically
+ reloaded.
+
+ @see To update/reload the title of the image row item, assign to
+ the @c text property of the image row item.
+ */
+@property (nonatomic, copy) NSArray <NSString *> *imageTitles API_AVAILABLE(ios(17.4));
 
 /**
  A block that is called when the user selects one of the images in this image row item.
diff -ruN /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CarPlay.framework/Headers/CPManeuver.h /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CarPlay.framework/Headers/CPManeuver.h
--- /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CarPlay.framework/Headers/CPManeuver.h	2023-11-12 13:42:02
+++ /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CarPlay.framework/Headers/CPManeuver.h	2024-01-10 02:39:21
@@ -7,9 +7,85 @@
 
 #import <CarPlay/CPImageSet.h>
 #import <Foundation/Foundation.h>
+#import <CarPlay/CPLaneGuidance.h>
 #import <CarPlay/CPTravelEstimates.h>
 #import <UIKit/UIKit.h>
 
+typedef NS_ENUM(NSUInteger, CPManeuverType) {
+    CPManeuverTypeNoTurn                    =  0,
+    CPManeuverTypeLeftTurn                  =  1,
+    CPManeuverTypeRightTurn                 =  2,
+    CPManeuverTypeStraightAhead             =  3,
+    CPManeuverTypeUTurn                     =  4,
+    CPManeuverTypeFollowRoad                =  5,
+    CPManeuverTypeEnterRoundabout           =  6,
+    CPManeuverTypeExitRoundabout            =  7,
+    CPManeuverTypeOffRamp                   =  8,
+    CPManeuverTypeOnRamp                    =  9,
+    CPManeuverTypeArriveEndOfNavigation     = 10,
+    CPManeuverTypeStartRoute                = 11,
+    CPManeuverTypeArriveAtDestination       = 12,
+    CPManeuverTypeKeepLeft                  = 13,
+    CPManeuverTypeKeepRight                 = 14,
+    CPManeuverTypeEnter_Ferry               = 15,
+    CPManeuverTypeExitFerry                 = 16,
+    CPManeuverTypeChangeFerry               = 17,
+    CPManeuverTypeStartRouteWithUTurn       = 18,
+    CPManeuverTypeUTurnAtRoundabout         = 19,
+    CPManeuverTypeLeftTurnAtEnd             = 20,
+    CPManeuverTypeRightTurnAtEnd            = 21,
+    CPManeuverTypeHighwayOffRampLeft        = 22,
+    CPManeuverTypeHighwayOffRampRight       = 23,
+    CPManeuverTypeArriveAtDestinationLeft   = 24,
+    CPManeuverTypeArriveAtDestinationRight  = 25,
+    CPManeuverTypeUTurnWhenPossible         = 26,
+    CPManeuverTypeArriveEndOfDirections     = 27,
+    CPManeuverTypeRoundaboutExit1           = 28,
+    CPManeuverTypeRoundaboutExit2           = 29,
+    CPManeuverTypeRoundaboutExit3           = 30,
+    CPManeuverTypeRoundaboutExit4           = 31,
+    CPManeuverTypeRoundaboutExit5           = 32,
+    CPManeuverTypeRoundaboutExit6           = 33,
+    CPManeuverTypeRoundaboutExit7           = 34,
+    CPManeuverTypeRoundaboutExit8           = 35,
+    CPManeuverTypeRoundaboutExit9           = 36,
+    CPManeuverTypeRoundaboutExit10          = 37,
+    CPManeuverTypeRoundaboutExit11          = 38,
+    CPManeuverTypeRoundaboutExit12          = 39,
+    CPManeuverTypeRoundaboutExit13          = 40,
+    CPManeuverTypeRoundaboutExit14          = 41,
+    CPManeuverTypeRoundaboutExit15          = 42,
+    CPManeuverTypeRoundaboutExit16          = 43,
+    CPManeuverTypeRoundaboutExit17          = 44,
+    CPManeuverTypeRoundaboutExit18          = 45,
+    CPManeuverTypeRoundaboutExit19          = 46,
+    CPManeuverTypeSharpLeftTurn             = 47,
+    CPManeuverTypeSharpRightTurn            = 48,
+    CPManeuverTypeSlightLeftTurn            = 49,
+    CPManeuverTypeSlightRightTurn           = 50,
+    CPManeuverTypeChangeHighway             = 51,
+    CPManeuverTypeChangeHighwayLeft         = 52,
+    CPManeuverTypeChangeHighwayRight        = 53,
+} API_AVAILABLE(ios(17.4));
+
+typedef NS_ENUM(NSUInteger, CPJunctionType) {
+    CPJunctionTypeIntersection = 0, // single intersection with roads coming to a common point
+    CPJunctionTypeRoundabout   = 1, // roundabout, junction elements represent roads exiting the roundabout
+} API_AVAILABLE(ios(17.4));
+
+typedef NS_ENUM(NSUInteger, CPTrafficSide) {
+    CPTrafficSideRight = 0, // counterclockwise for roundabouts
+    CPTrafficSideLeft  = 1, // clockwise for roundabouts
+} API_AVAILABLE(ios(17.4));
+
+typedef NS_ENUM(NSInteger, CPManeuverState)
+{
+    CPManeuverStateContinue = 0,
+    CPManeuverStateInitial,
+    CPManeuverStatePrepare,
+    CPManeuverStateExecute
+} API_AVAILABLE(ios(17.4));
+
 NS_ASSUME_NONNULL_BEGIN
 
 /**
@@ -126,6 +202,47 @@
  @see +[NSAttributedString attributedStringWithAttachment:], -[NSTextAttachment image]
  */
 @property (nonatomic, copy) NSArray<NSAttributedString *> *notificationAttributedInstructionVariants API_AVAILABLE(ios(14.0));
+
+/**
+ maneuverType is a @c CPManeuverType representing the type of maneuver.
+ */
+@property (nonatomic, assign) CPManeuverType maneuverType API_AVAILABLE(ios(17.4));
+
+/**
+ roadFollowingManeuverVariants is an array of @c NSString representing the name of the road following this maneuver,
+ arranged from most to least preferred. (arranged by space)
+ */
+@property (nonatomic, copy, nullable) NSArray<NSString *> *roadFollowingManeuverVariants API_AVAILABLE(ios(17.4));
+
+/**
+ trafficSide is a @c CPTrafficSide representing which side of the road the traffic drives on.
+ */
+@property (nonatomic, assign) CPTrafficSide trafficSide API_AVAILABLE(ios(17.4));
+
+/**
+ junctionType is a @c CPJunctionType representing the type of the junction associated with this maneuver
+ */
+@property (nonatomic, assign) CPJunctionType junctionType API_AVAILABLE(ios(17.4));
+
+/**
+ junctionExitAngle is the angle of the exit road of this junction.
+ */
+@property (nonatomic, copy, nullable) NSMeasurement<NSUnitAngle *> *junctionExitAngle API_AVAILABLE(ios(17.4));
+
+/**
+ junctionElementAngles is a set of angles of the rest of the roads of this junction. This must not include @c junctionExitAngle .
+ */
+@property (nonatomic, copy, nullable) NSSet<NSMeasurement<NSUnitAngle *> *> *junctionElementAngles API_AVAILABLE(ios(17.4));
+
+/**
+ linkedLaneGuidance is the optional @c CPLaneGuidance associated with this maneuver // conditional - must be there if there is a corresponding lane guidance
+ */
+@property (nonatomic, assign) CPLaneGuidance *linkedLaneGuidance API_AVAILABLE(ios(17.4));
+
+/**
+ highwayExitLabel is a @c NSString describing a highway exit. Exit 123 for example.
+ */
+@property (nonatomic, copy) NSString *highwayExitLabel API_AVAILABLE(ios(17.4));
 
 /**
  Any custom user info related to this maneuver.
diff -ruN /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CarPlay.framework/Headers/CPMapTemplate.h /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CarPlay.framework/Headers/CPMapTemplate.h
--- /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CarPlay.framework/Headers/CPMapTemplate.h	2023-11-12 13:13:29
+++ /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CarPlay.framework/Headers/CPMapTemplate.h	2024-01-19 03:46:56
@@ -183,6 +183,13 @@
 @protocol CPMapTemplateDelegate <NSObject>
 @optional
 
+#pragma mark - Navigation Metadata
+/**
+ Determines if the template should provide navigation metadata.
+ @return YES if the template should provide navigation metadata, otherwise NO
+ */
+- (BOOL)mapTemplateShouldProvideNavigationMetadata:(CPMapTemplate *)mapTemplate;
+
 #pragma mark - Notification Policy
 /**
  Determines if the maneuver should be presented as a notification when the app is in the background.
diff -ruN /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CarPlay.framework/Headers/CPNavigationEnum.h /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CarPlay.framework/Headers/CPNavigationEnum.h
--- /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CarPlay.framework/Headers/CPNavigationEnum.h	1969-12-31 19:00:00
+++ /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CarPlay.framework/Headers/CPNavigationEnum.h	2024-01-19 03:46:54
@@ -0,0 +1,23 @@
+//
+//  CPNavigationEnum.h
+//  CarPlay
+//
+//  Copyright © 2023 Apple Inc. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+#import <CarPlay/CPLane.h>
+#import <CarPlay/CPManeuver.h>
+#import <CarPlay/CPRouteInfo.h>
+
+#pragma mark - Maneuver
+NSString *NSStringFromCPManeuverType(CPManeuverType maneuverType);
+NSString *NSStringFromCPJunctionType(CPJunctionType junctionType);
+NSString *NSStringFromCPTrafficSide(CPTrafficSide trafficSide);
+
+#pragma mark - Lane
+NSString *NSStringFromCPLaneStatus(CPLaneStatus laneStatus);
+
+#pragma mark - ReRouting
+NSString *NSStringFromCPRerouteReason(CPRerouteReason reason);
diff -ruN /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CarPlay.framework/Headers/CPNavigationSession.h /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CarPlay.framework/Headers/CPNavigationSession.h
--- /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CarPlay.framework/Headers/CPNavigationSession.h	2023-11-12 13:42:02
+++ /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CarPlay.framework/Headers/CPNavigationSession.h	2024-01-19 03:46:55
@@ -64,6 +64,35 @@
 @property (nonatomic, readwrite, copy) NSArray<CPManeuver *> *upcomingManeuvers;
 
 /**
+ The current lane guidance to be used for navigation metdata.
+ Must be set to nil if there is no current lane guidance. CPLaneGuidances set here must first be added to the session using addLaneGuidances:
+ */
+@property (nullable, nonatomic, readwrite, copy) CPLaneGuidance *currentLaneGuidance;
+
+/**
+ Use this method to add CPManeuvers in chronological order to the navigation session.
+ The application must provide as many maneuvers as possible, as soon as they are available. All
+ maneuvers set in upcomingManeuvers must be first added using this method.
+ */
+- (void)addManeuvers:(NSArray<CPManeuver *> *)maneuvers;
+
+/**
+ Use this method to add CPLaneGuidances in chronological order to the navigation session.
+ CPLaneGuidance objects must be added as soon as they are available.
+ */
+- (void)addLaneGuidances:(NSArray<CPLaneGuidance *> *)laneGuidances;
+
+/**
+ Set this property with variants of the current road name. From most to least verbose.
+ */
+@property (nonatomic, copy) NSArray<NSString *> *currentRoadNameVariants;
+
+/**
+ Set this property with the current maneuver state based on how close the maneuver is.
+ */
+@property (nonatomic) CPManeuverState maneuverState;
+
+/**
  The trip associated with this navigation session.
  */
 @property (nonatomic, readonly, strong) CPTrip *trip;
diff -ruN /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CarPlay.framework/Headers/CPRouteInfo.h /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CarPlay.framework/Headers/CPRouteInfo.h
--- /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CarPlay.framework/Headers/CPRouteInfo.h	1969-12-31 19:00:00
+++ /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CarPlay.framework/Headers/CPRouteInfo.h	2024-01-19 03:46:53
@@ -0,0 +1,30 @@
+//
+//  CPRouteInfo.h
+//  CarPlayFrameworks
+//
+//  Created by Evan Murphy on 9/12/23.
+//  Copyright © 2023 Apple Inc. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+typedef NS_ENUM(uint8_t, CPRerouteReason)
+{
+    CPRerouteReasonMissedTurn = 0,
+    CPRerouteReasonOffline,
+    CPRerouteReasonAlternateRoute,
+    CPRerouteReasonWaypointAdded
+};
+
+@class CPRouteGuidance, CPManeuver, CPLaneGuidance;
+
+@interface CPRouteInfo : NSObject
+
+@property (readonly, nonatomic, copy) NSArray<CPManeuver *> *maneuvers;
+@property (readonly, nonatomic, copy) NSArray<CPLaneGuidance *> *laneGuidances;
+@property (readonly, nonatomic, copy) CPRouteGuidance *routeGuidance;
+
+- (instancetype)initWithRouteGuidance:(CPRouteGuidance *) routeGuidance maneuvers:(NSArray<CPManeuver *> *) maneuvers laneGuidances:(NSArray<CPLaneGuidance *> *) laneGuidances;
+
+@end
+
diff -ruN /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CarPlay.framework/Headers/CPTravelEstimates.h /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CarPlay.framework/Headers/CPTravelEstimates.h
--- /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CarPlay.framework/Headers/CPTravelEstimates.h	2023-11-12 13:42:01
+++ /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CarPlay.framework/Headers/CPTravelEstimates.h	2024-01-19 03:46:55
@@ -29,6 +29,13 @@
 - (instancetype)init NS_UNAVAILABLE;
 + (instancetype)new NS_UNAVAILABLE;
 
+- (instancetype)initWithDistanceRemaining:(NSMeasurement<NSUnitLength *> *)distanceRemaining distanceRemainingToDisplay:(NSMeasurement<NSUnitLength *> *)distanceRemainingToDisplay timeRemaining:(NSTimeInterval)time NS_DESIGNATED_INITIALIZER;
+
+/**
+ Distance remaining for displaying to the user.  If not set falls back to distanceRemaining;
+ */
+@property (nonatomic, readonly, copy) NSMeasurement<NSUnitLength *> *distanceRemainingToDisplay;
+
 /**
  Distance remaining.
  */
diff -ruN /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CarPlay.framework/Headers/CPTrip.h /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CarPlay.framework/Headers/CPTrip.h
--- /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CarPlay.framework/Headers/CPTrip.h	2023-11-12 13:42:02
+++ /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CarPlay.framework/Headers/CPTrip.h	2024-01-19 03:46:55
@@ -85,6 +85,13 @@
  */
 @property (nullable, nonatomic, strong) id userInfo;
 
+/**
+ destinationNameVariants is an array of @c NSString representing the name of the destination for
+ this trip, arranged from most to least preferred. You must provide at least one variant.
+ The variant strings should be provided as localized, displayable content.
+ */
+@property (nonatomic, copy, nullable) NSArray<NSString *> *destinationNameVariants;
+
 @end
 
 NS_ASSUME_NONNULL_END
Clone this wiki locally