#import "SceneDelegate.h"

#import "UnityViewControllerBase.h"
#include "UnityAppController.h"

#import <P101XP/P101XP-Swift.h>

@implementation SceneDelegate

- (void)scene:(UIScene *)scene openURLContexts:(NSSet<UIOpenURLContext *> *)URLContexts {
    [P101XPSDK sceneOpenUrl:URLContexts];
}

- (void)scene:(UIScene *)scene continueUserActivity:(NSUserActivity *)userActivity {
    [P101XPSDK sceneUserActivity:userActivity];
}

- (void)sceneWillResignActive:(UIScene *)scene {
    auto appController = GetAppController();
    if ([appController respondsToSelector:@selector(applicationWillResignActive:)]) {
        [appController applicationWillResignActive:UIApplication.sharedApplication];
    }
}

- (void)sceneDidEnterBackground:(UIScene *)scene {
    auto appController = GetAppController();
    if ([appController respondsToSelector:@selector(applicationDidEnterBackground:)]) {
        [appController applicationDidEnterBackground:UIApplication.sharedApplication];
    }
    [P101XPSDK sceneDidEnterBackground];
}

- (void)sceneDidBecomeActive:(UIScene *)scene {
    auto appController = GetAppController();
    if ([appController respondsToSelector:@selector(applicationDidBecomeActive:)]) {
        [appController applicationDidBecomeActive:UIApplication.sharedApplication];
    }
    [P101XPSDK sceneDidBecomeActive];
}

- (void)sceneWillEnterForeground:(UIScene *)scene {
    auto appController = GetAppController();
    UIWindowScene *windowScene = (UIWindowScene *)scene;
    [appController initUnityWithScene:windowScene];

    if ([appController respondsToSelector:@selector(applicationWillEnterForeground:)]) {
        [appController applicationWillEnterForeground:UIApplication.sharedApplication];
    }
    [P101XPSDK sceneWillEnterForeground];
}

@end
