Flutter Engine
 
Loading...
Searching...
No Matches
FlutterEnginePluginSceneLifeCycleDelegate Class Reference

#include <FlutterSceneLifeCycle_Internal.h>

Inheritance diagram for FlutterEnginePluginSceneLifeCycleDelegate:

Instance Methods

(void) - addDelegate:
 
(BOOL- scene:willConnectToSession:options:
 
(void) - sceneDidDisconnect:
 
(void) - sceneWillEnterForeground:
 
(void) - sceneDidBecomeActive:
 
(void) - sceneWillResignActive:
 
(void) - sceneDidEnterBackground:
 
(BOOL- scene:openURLContexts:
 
(BOOL- scene:continueUserActivity:
 
(BOOL- windowScene:performActionForShortcutItem:completionHandler:
 

Detailed Description

Forwards callbacks to registered plugins.

Definition at line 511 of file FlutterSceneLifeCycle.mm.

Method Documentation

◆ addDelegate:

- (void) addDelegate: (NSObject<FlutterSceneLifeCycleDelegate>*)  delegate

Definition at line 36 of file FlutterSceneLifeCycle.mm.

523 :(NSObject<FlutterSceneLifeCycleDelegate>*)delegate {
524 [_delegates addPointer:(__bridge void*)delegate];
525
526 // NSPointerArray is clever and assumes that unless a mutation operation has occurred on it that
527 // has set one of its values to nil, nothing could have changed and it can skip compaction.
528 // That's reasonable behaviour on a regular NSPointerArray but not for a weakObjectPointerArray.
529 // As a workaround, we mutate it first. See: http://www.openradar.me/15396578
530 [_delegates addPointer:nil];
531 [_delegates compact];
532}

References self.

◆ scene:continueUserActivity:

- (BOOL) scene: (UIScene*)  scene
continueUserActivity: (NSUserActivity*)  userActivity 

Definition at line 36 of file FlutterSceneLifeCycle.mm.

614 :(UIScene*)scene continueUserActivity:(NSUserActivity*)userActivity {
615 for (NSObject<FlutterSceneLifeCycleDelegate>* delegate in _delegates.allObjects) {
616 if ([delegate respondsToSelector:_cmd]) {
617 if ([delegate scene:scene continueUserActivity:userActivity]) {
618 // Only allow one plugin to process this event.
619 return YES;
620 }
621 }
622 }
623 return NO;
624}
NSPointerArray * _delegates

◆ scene:openURLContexts:

- (BOOL) scene: (UIScene*)  scene
openURLContexts: (NSSet<UIOpenURLContext*>*)  URLContexts 

Definition at line 36 of file FlutterSceneLifeCycle.mm.

600 :(UIScene*)scene openURLContexts:(NSSet<UIOpenURLContext*>*)URLContexts {
601 for (NSObject<FlutterSceneLifeCycleDelegate>* delegate in _delegates.allObjects) {
602 if ([delegate respondsToSelector:_cmd]) {
603 if ([delegate scene:scene openURLContexts:URLContexts]) {
604 // Only allow one plugin to process this event.
605 return YES;
606 }
607 }
608 }
609 return NO;
610}

◆ scene:willConnectToSession:options:

- (BOOL) scene: (UIScene*)  scene
willConnectToSession: (UISceneSession*)  session
options: (UISceneConnectionOptions*)  connectionOptions 

Definition at line 36 of file FlutterSceneLifeCycle.mm.

536 :(UIScene*)scene
537 willConnectToSession:(UISceneSession*)session
538 options:(UISceneConnectionOptions*)connectionOptions {
539 BOOL handledByPlugin = NO;
540 for (NSObject<FlutterSceneLifeCycleDelegate>* delegate in _delegates.allObjects) {
541 if ([delegate respondsToSelector:_cmd]) {
542 // If this event has already been consumed by a plugin, send the event with nil options.
543 // Only allow one plugin to process the connection options.
544 if ([delegate scene:scene
545 willConnectToSession:session
546 options:(handledByPlugin ? nil : connectionOptions)]) {
547 handledByPlugin = YES;
548 }
549 }
550 }
551 return handledByPlugin;
552}
int BOOL

◆ sceneDidBecomeActive:

- (void) sceneDidBecomeActive: (UIScene*)  scene

Definition at line 36 of file FlutterSceneLifeCycle.mm.

572 :(UIScene*)scene {
573 for (NSObject<FlutterSceneLifeCycleDelegate>* delegate in _delegates.allObjects) {
574 if ([delegate respondsToSelector:_cmd]) {
575 [delegate sceneDidBecomeActive:scene];
576 }
577 }
578}

◆ sceneDidDisconnect:

- (void) sceneDidDisconnect: (UIScene*)  scene

Definition at line 36 of file FlutterSceneLifeCycle.mm.

554 :(UIScene*)scene {
555 for (NSObject<FlutterSceneLifeCycleDelegate>* delegate in _delegates.allObjects) {
556 if ([delegate respondsToSelector:_cmd]) {
557 [delegate sceneDidDisconnect:scene];
558 }
559 }
560}

◆ sceneDidEnterBackground:

- (void) sceneDidEnterBackground: (UIScene*)  scene

Definition at line 36 of file FlutterSceneLifeCycle.mm.

590 :(UIScene*)scene {
591 for (NSObject<FlutterSceneLifeCycleDelegate>* delegate in _delegates.allObjects) {
592 if ([delegate respondsToSelector:_cmd]) {
593 [delegate sceneDidEnterBackground:scene];
594 }
595 }
596}

◆ sceneWillEnterForeground:

- (void) sceneWillEnterForeground: (UIScene*)  scene

Definition at line 36 of file FlutterSceneLifeCycle.mm.

564 :(UIScene*)scene {
565 for (NSObject<FlutterSceneLifeCycleDelegate>* delegate in _delegates.allObjects) {
566 if ([delegate respondsToSelector:_cmd]) {
567 [delegate sceneWillEnterForeground:scene];
568 }
569 }
570}

◆ sceneWillResignActive:

- (void) sceneWillResignActive: (UIScene*)  scene

Definition at line 36 of file FlutterSceneLifeCycle.mm.

582 :(UIScene*)scene {
583 for (NSObject<FlutterSceneLifeCycleDelegate>* delegate in _delegates.allObjects) {
584 if ([delegate respondsToSelector:_cmd]) {
585 [delegate sceneWillResignActive:scene];
586 }
587 }
588}

◆ windowScene:performActionForShortcutItem:completionHandler:

- (BOOL) windowScene: (UIWindowScene*)  windowScene
performActionForShortcutItem: (UIApplicationShortcutItem*)  shortcutItem
completionHandler: (void(^)(BOOL succeeded))  completionHandler 

Definition at line 36 of file FlutterSceneLifeCycle.mm.

628 :(UIWindowScene*)windowScene
629 performActionForShortcutItem:(UIApplicationShortcutItem*)shortcutItem
630 completionHandler:(void (^)(BOOL succeeded))completionHandler {
631 for (NSObject<FlutterSceneLifeCycleDelegate>* delegate in _delegates.allObjects) {
632 if ([delegate respondsToSelector:_cmd]) {
633 if ([delegate windowScene:windowScene
634 performActionForShortcutItem:shortcutItem
635 completionHandler:completionHandler]) {
636 // Only allow one plugin to process this event.
637 return YES;
638 }
639 }
640 }
641 return NO;
642}

The documentation for this class was generated from the following files: