/* * Copyright (c) Meta Platforms, Inc. and affiliates. * All rights reserved. * * This source code is licensed under the license found in the * LICENSE file in the root directory of this source tree. */ #import #import #import #import #import #import #if !TARGET_OS_TV #import #endif @protocol FBSDKErrorCreating; @protocol FBSDKInfoDictionaryProviding; @protocol FBSDKSettings; @protocol __FBSDKLoggerCreating; NS_ASSUME_NONNULL_BEGIN NS_SWIFT_NAME(InternalUtility) @interface FBSDKInternalUtility : NSObject #if !TARGET_OS_TV #else #endif #if !DEBUG - (instancetype)init NS_UNAVAILABLE; + (instancetype)new NS_UNAVAILABLE; #endif @property (class, nonnull, readonly) FBSDKInternalUtility *sharedUtility; /** Returns bundle for returning localized strings We assume a convention of a bundle named FBSDKStrings.bundle, otherwise we return the main bundle. */ @property (nonatomic, readonly, strong) NSBundle *bundleForStrings; /** Tests whether the supplied URL is a valid URL for opening in the browser. @param URL The URL to test. @return YES if the URL refers to an http or https resource, otherwise NO. */ - (BOOL)isBrowserURL:(NSURL *)URL; /** Checks equality between 2 objects. Checks for pointer equality, nils, isEqual:. @param object The first object to compare. @param other The second object to compare. @return YES if the objects are equal, otherwise NO. */ - (BOOL)object:(id)object isEqualToObject:(id)other; /// Attempts to find the first UIViewController in the view's responder chain. Returns nil if not found. - (nullable UIViewController *)viewControllerForView:(UIView *)view; /// returns true if the url scheme is registered in the CFBundleURLTypes - (BOOL)isRegisteredURLScheme:(NSString *)urlScheme; /// returns currently displayed top view controller. - (nullable UIViewController *)topMostViewController; /// returns the current key window - (nullable UIWindow *)findWindow; #pragma mark - FB Apps Installed @property (nonatomic, readonly, assign) BOOL isMessengerAppInstalled; - (BOOL)isRegisteredCanOpenURLScheme:(NSString *)urlScheme; /** Internal method exposed to facilitate transition to Swift. API Subject to change or removal without warning. Do not use. @warning INTERNAL - DO NOT USE */ - (void)configureWithInfoDictionaryProvider:(id)infoDictionaryProvider loggerFactory:(id<__FBSDKLoggerCreating>)loggerFactory settings:(id)settings errorFactory:(id)errorFactory NS_SWIFT_NAME(configure(infoDictionaryProvider:loggerFactory:settings:errorFactory:)); @end NS_ASSUME_NONNULL_END