@class NSDictionary, MRURoutingViewControllerUpdate, NSIndexPath, NSMutableArray, NSString, MPAVRoutingController, MRGroupSessionDiscovery, MRUVisualStylingProvider, NSMutableSet, NSTimer, NSArray, NSMutableDictionary, NSNumberFormatter, MRUVolumeGroupCoordinator, AVSystemController, MPAVRoute, MPSectionedCollection, MRURoutingView, CARSessionStatus, MPAVEndpointRoute, MRUVendorSpecificDeviceManager, MPWeakTimer; @protocol MRGroupSession, MRURoutingViewControllerDelegate; @interface MRURoutingViewController : UIViewController <UITableViewDataSource, UITableViewDelegate, UITableViewDelegatePrivate, MPAVRoutingControllerDelegate, MRURoutingTableViewCellDelegate, MRUNowPlayingControllerObserver, CARSessionObserving, UIGestureRecognizerDelegate, MRUVendorSpecificDeviceManagerDelegate, MRUVirtualHearingAidRouteObserver, MRGroupSessionDiscoveryDelegate, MRGroupSessionDelegate, MRUOutputDeviceRoutingDataSourceObserver> { MRURoutingViewControllerUpdate *_pendingUpdate; MRURoutingViewControllerUpdate *_optimisticUpdate; BOOL _isAnimatingUpdate; MPAVRoute *_displayedEndpointRoute; MPSectionedCollection *_routingViewItems; NSArray *_cachedPickedRoutes; NSArray *_cachedDisplayableAvailableRoutes; NSArray *_cachedPendingPickedRoutes; NSArray *_cachedDisplayAsPickedRoutes; NSArray *_cachedVolumeCapableRoutes; NSDictionary *_cachedRouteGrouping; NSArray *_cachedAirPlayRoutes; NSArray *_cachedNativeRoutes; NSArray *_cachedNativeRoutesInVendorSpecificGroup; NSArray *_cachedActivatedVendorSpecificDeviceIDs; NSArray *_cachedPendingVendorSpecificDeviceIDs; NSArray *_cachedAvailableVendorSpecificDeviceIDs; MPWeakTimer *_updateTimer; int _airPlayPasswordAlertDidAppearToken; int _airPlayPasswordAlertDidCancelToken; BOOL _airPlayPasswordAlertDidAppearTokenIsValid; BOOL _hasUserSelections; unsigned long long _updatesSincePresentation; BOOL _didSelectShowMore; BOOL _allRoutesAreUnknown; BOOL _someRoutesAreUnknown; } @property (retain, nonatomic) MRURoutingView *view; @property (retain, nonatomic) MRURoutingView *viewIfLoaded; @property (readonly, nonatomic, getter=isInCarPlay) BOOL inCarPlay; @property (nonatomic) BOOL onScreen; @property (retain, nonatomic) NSDictionary *outputDeviceVolumeControllers; @property (retain, nonatomic) CARSessionStatus *carPlaySessionStatus; @property (retain, nonatomic) NSMutableSet *expandedGroupUIDs; @property (retain, nonatomic) NSMutableSet *expandedItemUIDs; @property (retain, nonatomic) NSMutableSet *expandedRouteUIDs; @property (retain, nonatomic) NSDictionary *indexedNowPlayingControllers; @property (nonatomic) BOOL needsDisplayedRoutesUpdate; @property (retain, nonatomic) NSNumberFormatter *percentageFormatter; @property (retain, nonatomic) MPWeakTimer *subtitleUpdateTimer; @property (retain, nonatomic) NSTimer *collapseTimer; @property (nonatomic) unsigned long long stateHandle; @property (nonatomic) BOOL presentingAppHasActiveAVSession; @property (readonly, nonatomic) BOOL canUseUncoalescedResults; @property (readonly, nonatomic) BOOL shouldSuppressNativeRoutesStatusDisplay; @property (nonatomic) BOOL didLastPickNativeRoute; @property (retain, nonatomic) NSIndexPath *vendorSpecificGroupThatWasJustExpanded; @property (retain, nonatomic) NSString *mostRecentlyInteractedVendorSpecificGroupRouteID; @property (retain, nonatomic) NSMutableSet *collapsedVendorSpecificGroupUIDs; @property (retain, nonatomic) NSMutableSet *expandedVendorSpecificGroupUIDs; @property (retain, nonatomic) NSMutableDictionary *vendorSpecificGroupDisplayedSubroutes; @property (nonatomic) BOOL didExpandVendorSpecificSpeakerGroup; @property (retain, nonatomic) NSMutableArray *staticCustomRowItems; @property (retain, nonatomic) AVSystemController *mediaServerController; @property (retain, nonatomic) MRGroupSessionDiscovery *groupSessionDiscovery; @property (retain, nonatomic) id<MRGroupSession> activeGroupSession; @property (readonly, nonatomic) MPAVRoutingController *routingController; @property (retain, nonatomic) MRUVendorSpecificDeviceManager *vendorSpecificManager; @property (weak, nonatomic) id<MRURoutingViewControllerDelegate> delegate; @property (retain, nonatomic) MRUVisualStylingProvider *stylingProvider; @property (retain, nonatomic) MRUVolumeGroupCoordinator *volumeGroupCoordinator; @property (retain, nonatomic) NSArray *nowPlayingControllers; @property (retain, nonatomic) MPAVEndpointRoute *endpointRoute; @property (nonatomic) long long discoveryMode; @property (nonatomic) BOOL sortByIsVideoRoute; @property (nonatomic) BOOL showMetadataForEndpointRoute; @property (nonatomic) struct UIEdgeInsets { double top; double left; double bottom; double right; } contentEdgeInsets; @property (nonatomic) struct UIEdgeInsets { double top; double left; double bottom; double right; } scrollIndicatorInsets; @property (copy, nonatomic) NSMutableArray *customRows; @property (nonatomic) int presentingAppProcessIdentifier; @property (retain, nonatomic) NSString *presentingAppBundleID; @property (copy, nonatomic) NSString *nowPlayingAppBundleID; @property (copy, nonatomic) NSArray *visibleMediaApps; @property (readonly) unsigned long long hash; @property (readonly) Class superclass; @property (readonly, copy) NSString *description; @property (readonly, copy) NSString *debugDescription; - (void)routingControllerAvailableRoutesDidChange:(id)a0; - (void)showMoreAction; - (id)tableView:(id)a0 viewForHeaderInSection:(long long)a1; - (void)updateSubtitle; - (void)vendorSpecificManager:(id)a0 deviceNowPlayingInfoDidChange:(id)a1; - (long long)numberOfSectionsInTableView:(id)a0; - (void)routingCellDidTapToExpand:(id)a0; - (id)init; - (void)viewWillAppear:(BOOL)a0; - (void)groupSession:(id)a0 didInvalidateWithError:(id)a1; - (id)tableView:(id)a0 cellForRowAtIndexPath:(id)a1; - (void)dealloc; - (BOOL)_operationRequiresOptimisticState:(long long)a0 routes:(id)a1; - (long long)tableView:(id)a0 numberOfRowsInSection:(long long)a1; - (BOOL)isVendorSpecificGroupStatusRecorded:(id)a0; - (void)updateVendorSpecificSubRouteCell:(id)a0 forIndexPath:(id)a1; - (double)tableView:(id)a0 heightForRowAtIndexPath:(id)a1; - (id)initWithRoutingController:(id)a0; - (void)setOptimisticUpdate:(id)a0; - (BOOL)tableView:(id)a0 shouldHaveFullLengthBottomSeparatorForSection:(long long)a1; - (void)tableView:(id)a0 didSelectRowAtIndexPath:(id)a1; - (void)_createUpdateWithRefreshOnly:(BOOL)a0 completion:(id /* block */)a1; - (id)_displayableRoutesInRoutes:(id)a0; - (id)_mergeRoutes:(id)a0 withCoalescedResult:(id)a1; - (void)_updateGroupSessionDiscovery; - (void)routingController:(id)a0 shouldHijackRoute:(id)a1 alertStyle:(long long)a2 busyRouteName:(id)a3 presentingAppName:(id)a4 completion:(id /* block */)a5; - (id)groupUIDForRoute:(id)a0; - (void)resetDisplayedRoutes; - (void)viewDidLoad; - (void)_applyUpdate:(id)a0; - (void)updateCell:(id)a0 forIndexPath:(id)a1; - (void)_displayShareAudioDisabledAlertForReason:(id)a0; - (double)tableView:(id)a0 heightForHeaderInSection:(long long)a1; - (void)vendorSpecificManagerDeviceListDidChange:(id)a0; - (void)groupSessionDiscovery:(id)a0 discoveredSessionsDidChange:(id)a1; - (BOOL)_wouldShareAudioForPickedRoute:(id)a0 operation:(long long)a1 pickedRoutes:(id)a2; - (void)updateNowPlayingControllersForRoutes:(id)a0; - (void)updateHeaderView:(id)a0 forSection:(long long)a1; - (void)updateVendorSpecificSpeakerGroupCell:(id)a0 forIndexPath:(id)a1; - (void)updateMetadata; - (id)_airPlayRoutesInRoutes:(id)a0; - (double)tableView:(id)a0 estimatedHeightForRowAtIndexPath:(id)a1; - (void)didReceiveInteraction:(id)a0; - (void)sessionDidConnect:(id)a0; - (void)_displayEndGroupSessionWithCompletion:(id /* block */)a0; - (id)_stateDumpObject; - (void)loadView; - (BOOL)wasVendorSpecificGroupDisplayedAsExpanded:(id)a0; - (void)nowPlayingController:(id)a0 metadataController:(id)a1 didChangeNowPlayingInfo:(id)a2; - (id)_recommendedRoutesFromRoutes:(id)a0; - (void)_collapseAllGroupsAfterDelay; - (void)_setupUpdateTimerIfNecessary; - (void)routeRecommenderDidUpdateRecommendations:(id)a0; - (void)updateMetadataForNowPlayingController:(id)a0; - (id)_createSectionedCollection:(id)a0 withPickedRoutes:(id)a1; - (BOOL)routesContainMultipleBuiltIn:(id)a0; - (void)_updateDisplayedRoutes; - (BOOL)hasCarKitRoute; - (void)_reloadDisplayedRoutes; - (void)_refreshDisplayedRoutes; - (BOOL)routesContainAirPlayGroupableRoute:(id)a0; - (void)viewWillDisappear:(BOOL)a0; - (id)endpointGroupUID; - (void)playingSessionsDidChangeNotification:(id)a0; - (void)clearVendorSpecificGroupExpandedRecordFor:(id)a0; - (BOOL)_canShowWhileLocked; - (void)ensureVendorSpecificGroupTreeIsVisible:(id)a0; - (id)_fullStateDumpObject; - (void)routingController:(id)a0 pickedRoutesDidChange:(id)a1; - (BOOL)_shouldShowShowMoreButton; - (void)vendorSpecificManager:(id)a0 deviceStateDidChange:(id)a1; - (void)_setNeedsDisplayedRoutesUpdate; - (BOOL)nowPlayingControllerShouldAutomaticallyUpdateResponse:(id)a0; - (void).cxx_destruct; - (void)hearingAidReachabilityDidChange; - (void)routingController:(id)a0 didFailToPickRouteWithError:(id)a1; - (void)_collapseAllGroups; - (void)groupSessionDidConnect:(id)a0; - (void)viewDidMoveToWindow:(id)a0 shouldAppearOrDisappear:(BOOL)a1; - (id)_displayAsPickedRoutesInRoutes:(id)a0; - (BOOL)handleSelectedRoutingViewItem:(id)a0 operation:(long long)a1; - (void)updateVendorSpecificGroupExpandedRecordFor:(id)a0; - (void)vendorSpecificCellDidTapToExpand:(id)a0; - (void)groupSessionDiscovery:(id)a0 activeSessionDidChange:(id)a1; - (void)hearingAidConnectionDidChange; - (void)_displayGroupSessionAlertWithTitle:(id)a0 body:(id)a1 confirmTitle:(id)a2 cancelTitle:(id)a3 completion:(id /* block */)a4; - (void)selectRoutes:(id)a0 operation:(long long)a1 routingViewItem:(id)a2; - (long long)subtitleAccessoryForItem:(id)a0 nowPlayingInfo:(id)a1; - (void)handleGroupSessionJoinWithPickedRoute:(id)a0; - (id)_createRoutingViewItemsForUpdate:(id)a0; - (id)symbolNameForVendorSpecificRoute:(id)a0; - (void)applyVendorSpecificGroupExpandedRecord:(id)a0; - (void)updateVendorSpecificCell:(id)a0 forIndexPath:(id)a1; - (void)updateExpandedGroups; - (BOOL)routesContainSplitterCapableRoute:(id)a0; - (void)sessionDidDisconnect:(id)a0; - (void)viewDidDisappear:(BOOL)a0; - (void)_setNeedsRouteDiscoveryModeUpdate; - (void)_configureVolumeForUpdate:(id)a0 volumeCapableRoutes:(id *)a1 volumeController:(id *)a2; - (void)_enqueueUpdate:(id)a0; - (BOOL)isInVehicle; - (BOOL)gestureRecognizer:(id)a0 shouldRecognizeSimultaneouslyWithGestureRecognizer:(id)a1; - (void)updateVendorSpecificCustomRowCell:(id)a0 forIndexPath:(id)a1; - (void)fetchAvailableRoutesWithCompletionHandler:(id /* block */)a0; @end