//
//  UIApplication+Coroutine.m
//  cokit
//
//  Copyright © 2018 Alibaba Group Holding Limited All rights reserved.
//
//   Licensed under the Apache License, Version 2.0 (the "License");
//   you may not use this file except in compliance with the License.
//   You may obtain a copy of the License at
//
//   http://www.apache.org/licenses/LICENSE-2.0
//
//   Unless required by applicable law or agreed to in writing, software
//   distributed under the License is distributed on an "AS IS" BASIS,
//   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
//   See the License for the specific language governing permissions and
//   limitations under the License.

#import "UIApplication+Coroutine.h"

@implementation UIApplication (Coroutine)

- (BOOL)co_openURL:(NSURL *)url options:(NSDictionary<NSString *,id> *)options{
    if (@available(iOS 10.0, *)) {
        SURE_ASYNC
        COPromise *promise = [COPromise promise:^(COPromiseFulfill  _Nonnull resolve, COPromiseReject  _Nonnull reject) {
            if (@available(iOS 10.0, *)) {
                [self openURL:url options:options completionHandler:^(BOOL success) {
                    resolve(@(success));
                }];
            } else {
                // Fallback on earlier versions
                resolve(@(NO));
            }
        }];
        id value = await(promise);
        return [value boolValue];
    } else {
        return [self openURL:url];
    }
    
}

@end
