diff --git a/ios/Classes/FCPEnums.swift b/ios/Classes/FCPEnums.swift index 22f209c..613afec 100644 --- a/ios/Classes/FCPEnums.swift +++ b/ios/Classes/FCPEnums.swift @@ -23,6 +23,7 @@ enum FCPChannelTypes { static let onPresentStateChanged = "onPresentStateChanged" static let popTemplate = "popTemplate" static let pushTemplate = "pushTemplate" + static let showNowPlaying = "showNowPlaying" static let closePresent = "closePresent" static let onGridButtonPressed = "onGridButtonPressed" static let setActionSheet = "setActionSheet" diff --git a/ios/Classes/SwiftFlutterCarplayPlugin.swift b/ios/Classes/SwiftFlutterCarplayPlugin.swift index f42a900..dbd5490 100644 --- a/ios/Classes/SwiftFlutterCarplayPlugin.swift +++ b/ios/Classes/SwiftFlutterCarplayPlugin.swift @@ -169,6 +169,14 @@ public class SwiftFlutterCarplayPlugin: NSObject, FlutterPlugin { self.objcPresentTemplate = nil result(true) break + case FCPChannelTypes.showNowPlaying: + guard let animated = call.arguments as? Bool else { + result(false) + return + } + FlutterCarPlaySceneDelegate.push(template: CPNowPlayingTemplate.shared, animated: animated) + result(true) + break case FCPChannelTypes.pushTemplate: guard let args = call.arguments as? [String : Any] else { result(false) diff --git a/lib/carplay_worker.dart b/lib/carplay_worker.dart index 50c2916..aa570d3 100644 --- a/lib/carplay_worker.dart +++ b/lib/carplay_worker.dart @@ -288,4 +288,17 @@ class FlutterCarplay { throw TypeError(); } } + + /// Navigate to the shared instance of the NowPlaying Template + /// + /// - If animated is true, CarPlay animates the transition between templates. + static Future showSharedNowPlaying({ + bool animated = true, + }) async { + bool isCompleted = await _carPlayController.reactToNativeModule( + FCPChannelTypes.showNowPlaying, + animated, + ); + return isCompleted; + } } diff --git a/lib/constants/private_constants.dart b/lib/constants/private_constants.dart index 65dfb4c..63cb643 100644 --- a/lib/constants/private_constants.dart +++ b/lib/constants/private_constants.dart @@ -11,6 +11,7 @@ enum FCPChannelTypes { popTemplate, closePresent, pushTemplate, + showNowPlaying, onGridButtonPressed, setActionSheet, onBarButtonPressed,