From b19a78b27247f5f0761c35b5b3e8a41876eabb05 Mon Sep 17 00:00:00 2001
From: lpw <pengwei.li@gamehollywood.com>
Date: Tue, 20 Apr 2021 17:18:32 +0800
Subject: [PATCH] no message

---
 frameworks/FBSDKLoginKit.framework/Headers/FBSDKLoginManager.h |  303 +++++++++++++++++++++++++++-----------------------
 1 files changed, 164 insertions(+), 139 deletions(-)

diff --git a/frameworks/FBSDKLoginKit.framework/Headers/FBSDKLoginManager.h b/frameworks/FBSDKLoginKit.framework/Headers/FBSDKLoginManager.h
index ee35bd8..e6b5aaf 100644
--- a/frameworks/FBSDKLoginKit.framework/Headers/FBSDKLoginManager.h
+++ b/frameworks/FBSDKLoginKit.framework/Headers/FBSDKLoginManager.h
@@ -16,27 +16,77 @@
 // IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
 // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
-#import <Accounts/Accounts.h>
-#import <Foundation/Foundation.h>
 #import <UIKit/UIKit.h>
+
+#import "FBSDKLoginConfiguration.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+#if TARGET_OS_TV
+
+// This is an unfortunate hack for Swift Package Manager support.
+// SPM does not allow us to conditionally exclude Swift files for compilation by platform.
+//
+// So to support tvOS with SPM we need to use runtime availability checks in the Swift files.
+// This means that even though the code in `LoginManager.swift` will never be run for tvOS
+// targets, it still needs to be able to compile. Hence we need to declare it here.
+//
+// The way to fix this is to remove extensions of ObjC types in Swift.
+
+@class LoginManagerLoginResult;
+@class FBSDKLoginConfiguration;
+
+typedef NS_ENUM(NSUInteger, LoginBehavior) { LoginBehaviorBrowser };
+typedef NS_ENUM(NSUInteger, DefaultAudience) { DefaultAudienceFriends };
+
+typedef void (^LoginManagerLoginResultBlock)(LoginManagerLoginResult *_Nullable result,
+                                             NSError *_Nullable error);
+
+@interface LoginManager : NSObject
+
+@property (assign, nonatomic) LoginBehavior loginBehavior;
+@property (assign, nonatomic) DefaultAudience defaultAudience;
+
+- (void)logInWithPermissions:(NSArray<NSString *> *)permissions
+              fromViewController:(nullable UIViewController *)fromViewController
+                         handler:(nullable LoginManagerLoginResultBlock)handler
+NS_SWIFT_NAME(logIn(permissions:from:handler:));
+
+- (void)logInFromViewController:(nullable UIViewController *)viewController
+                  configuration:(FBSDKLoginConfiguration *)configuration
+                     completion:(LoginManagerLoginResultBlock)completion
+NS_REFINED_FOR_SWIFT;
+
+@end
+
+#else
 
 @class FBSDKLoginManagerLoginResult;
 
-/*!
- @abstract Describes the call back to the FBSDKLoginManager
+/// typedef for FBSDKLoginAuthType
+typedef NSString *const FBSDKLoginAuthType NS_TYPED_EXTENSIBLE_ENUM NS_SWIFT_NAME(LoginAuthType);
+
+/// Rerequest
+FOUNDATION_EXPORT FBSDKLoginAuthType FBSDKLoginAuthTypeRerequest;
+
+/// Reauthorize
+FOUNDATION_EXPORT FBSDKLoginAuthType FBSDKLoginAuthTypeReauthorize;
+
+/**
+  Describes the call back to the FBSDKLoginManager
  @param result the result of the authorization
  @param error the authorization error, if any.
  */
-typedef void (^FBSDKLoginManagerRequestTokenHandler)(FBSDKLoginManagerLoginResult *result, NSError *error);
+typedef void (^FBSDKLoginManagerLoginResultBlock)(FBSDKLoginManagerLoginResult *_Nullable result,
+                                                  NSError *_Nullable error)
+NS_SWIFT_NAME(LoginManagerLoginResultBlock);
 
 
-/*!
- @typedef FBSDKDefaultAudience enum
+/**
+ FBSDKDefaultAudience enum
 
- @abstract
- Passed to open to indicate which default audience to use for sessions that post data to Facebook.
+  Passed to openURL to indicate which default audience to use for sessions that post data to Facebook.
 
- @discussion
  Certain operations such as publishing a status or publishing a photo require an audience. When the user
  grants an application permission to perform a publish operation, a default audience is selected as the
  publication ceiling for the application. This enumerated value allows the application to select which
@@ -44,159 +94,134 @@
  */
 typedef NS_ENUM(NSUInteger, FBSDKDefaultAudience)
 {
-  /*! Indicates that the user's friends are able to see posts made by the application */
+  /** Indicates that the user's friends are able to see posts made by the application */
   FBSDKDefaultAudienceFriends = 0,
-  /*! Indicates that only the user is able to see posts made by the application */
+  /** Indicates that only the user is able to see posts made by the application */
   FBSDKDefaultAudienceOnlyMe,
-  /*! Indicates that all Facebook users are able to see posts made by the application */
+  /** Indicates that all Facebook users are able to see posts made by the application */
   FBSDKDefaultAudienceEveryone,
-};
+} NS_SWIFT_NAME(DefaultAudience);
 
-/*!
- @typedef FBSDKLoginBehavior enum
+/**
+  `FBSDKLoginManager` provides methods for logging the user in and out.
 
- @abstract
- Passed to the \c FBSDKLoginManager to indicate how Facebook Login should be attempted.
+ `FBSDKLoginManager` serves to help manage sessions represented by tokens for authentication,
+ `AuthenticationToken`, and data access, `AccessToken`.
 
- @discussion
- Facebook Login authorizes the application to act on behalf of the user, using the user's
- Facebook account. Usually a Facebook Login will rely on an account maintained outside of
- the application, by the native Facebook application, the browser, or perhaps the device
- itself. This avoids the need for a user to enter their username and password directly, and
- provides the most secure and lowest friction way for a user to authorize the application to
- interact with Facebook.
+ You should check if the type of token you expect is present as a singleton instance, either `AccessToken.current`
+ or `AuthenticationToken.current` before calling any of the login methods to see if there is a cached token
+ available. A standard place to do this is in `viewDidLoad`.
 
- The \c FBSDKLoginBehavior enum specifies which log-in methods may be used. The SDK
-  will determine the best behavior based on the current device (such as iOS version).
+ @warning If you are managing your own token instances outside of `AccessToken.current`, you will need to set
+ `AccessToken.current` before calling any of the login methods to authorize further permissions on your tokens.
  */
-typedef NS_ENUM(NSUInteger, FBSDKLoginBehavior)
-{
-  /*!
-   @abstract This is the default behavior, and indicates logging in through the native
-   Facebook app may be used. The SDK may still use Safari instead.
-   */
-  FBSDKLoginBehaviorNative = 0,
-  /*!
-   @abstract Attempts log in through the Safari or SFSafariViewController, if available.
-   */
-  FBSDKLoginBehaviorBrowser,
-  /*!
-   @abstract Attempts log in through the Facebook account currently signed in through
-   the device Settings.
-   @note If the account is not available to the app (either not configured by user or
-   as determined by the SDK) this behavior falls back to \c FBSDKLoginBehaviorNative.
-   */
-  FBSDKLoginBehaviorSystemAccount,
-  /*!
-   @abstract Attemps log in through a modal \c UIWebView pop up
-
-   @note This behavior is only available to certain types of apps. Please check the Facebook
-   Platform Policy to verify your app meets the restrictions.
-   */
-  FBSDKLoginBehaviorWeb,
-};
-
-/*!
- @abstract `FBSDKLoginManager` provides methods for logging the user in and out.
- @discussion `FBSDKLoginManager` works directly with `[FBSDKAccessToken currentAccessToken]` and
-  sets the "currentAccessToken" upon successful authorizations (or sets `nil` in case of `logOut`).
-
- You should check `[FBSDKAccessToken currentAccessToken]` before calling logIn* to see if there is
- a cached token available (typically in your viewDidLoad).
-
- If you are managing your own token instances outside of "currentAccessToken", you will need to set
- "currentAccessToken" before calling logIn* to authorize futher permissions on your tokens.
- */
+NS_SWIFT_NAME(LoginManager)
 @interface FBSDKLoginManager : NSObject
 
-/*!
- @abstract the default audience.
- @discussion you should set this if you intend to ask for publish permissions.
+/**
+ Auth type
+ */
+@property (strong, nonatomic) FBSDKLoginAuthType authType;
+/**
+  the default audience.
+
+ you should set this if you intend to ask for publish permissions.
  */
 @property (assign, nonatomic) FBSDKDefaultAudience defaultAudience;
 
-/*!
- @abstract the login behavior
- */
-@property (assign, nonatomic) FBSDKLoginBehavior loginBehavior;
+/**
+ Logs the user in or authorizes additional permissions.
 
-/*!
- @deprecated use logInWithReadPermissions:fromViewController:handler: instead
- */
-- (void)logInWithReadPermissions:(NSArray *)permissions handler:(FBSDKLoginManagerRequestTokenHandler)handler
-__attribute__ ((deprecated("use logInWithReadPermissions:fromViewController:handler: instead")));
-
-/*!
- @deprecated use logInWithPublishPermissions:fromViewController:handler: instead
- */
-- (void)logInWithPublishPermissions:(NSArray *)permissions handler:(FBSDKLoginManagerRequestTokenHandler)handler
-__attribute__ ((deprecated("use logInWithPublishPermissions:fromViewController:handler: instead")));
-
-/*!
- @abstract Logs the user in or authorizes additional permissions.
- @param permissions the optional array of permissions. Note this is converted to NSSet and is only
-  an NSArray for the convenience of literal syntax.
- @param fromViewController the view controller to present from. If nil, the topmost view controller will be
-  automatically determined as best as possible.
- @param handler the callback.
- @discussion Use this method when asking for read permissions. You should only ask for permissions when they
-  are needed and explain the value to the user. You can inspect the result.declinedPermissions to also
-  provide more information to the user if they decline permissions.
-
- If `[FBSDKAccessToken currentAccessToken]` is not nil, it will be treated as a reauthorization for that user
-  and will pass the "rerequest" flag to the login dialog.
-
- This method will present UI the user. You typically should check if `[FBSDKAccessToken currentAccessToken]`
- already contains the permissions you need before asking to reduce unnecessary app switching. For example,
- you could make that check at viewDidLoad.
- */
-- (void)logInWithReadPermissions:(NSArray *)permissions
-              fromViewController:(UIViewController *)fromViewController
-                         handler:(FBSDKLoginManagerRequestTokenHandler)handler;
-
-/*!
- @abstract Logs the user in or authorizes additional permissions.
  @param permissions the optional array of permissions. Note this is converted to NSSet and is only
  an NSArray for the convenience of literal syntax.
  @param fromViewController the view controller to present from. If nil, the topmost view controller will be
  automatically determined as best as possible.
  @param handler the callback.
- @discussion Use this method when asking for publish permissions. You should only ask for permissions when they
- are needed and explain the value to the user. You can inspect the result.declinedPermissions to also
- provide more information to the user if they decline permissions.
 
- If `[FBSDKAccessToken currentAccessToken]` is not nil, it will be treated as a reauthorization for that user
- and will pass the "rerequest" flag to the login dialog.
+ Use this method when asking for read permissions. You should only ask for permissions when they
+ are needed and explain the value to the user. You can inspect the `FBSDKLoginManagerLoginResultBlock`'s
+ `result.declinedPermissions` to provide more information to the user if they decline permissions.
+ You typically should check if `AccessToken.current` already contains the permissions you need before
+ asking to reduce unnecessary login attempts. For example, you could perform that check in `viewDidLoad`.
 
- This method will present UI the user. You typically should check if `[FBSDKAccessToken currentAccessToken]`
- already contains the permissions you need before asking to reduce unnecessary app switching. For example,
- you could make that check at viewDidLoad.
+ @warning You can only perform one login call at a time. Calling a login method before the completion handler is called
+ on a previous login attempt will result in an error.
+ @warning This method will present a UI to the user and thus should be called on the main thread.
  */
-- (void)logInWithPublishPermissions:(NSArray *)permissions
-                 fromViewController:(UIViewController *)fromViewController
-                            handler:(FBSDKLoginManagerRequestTokenHandler)handler;
+- (void)logInWithPermissions:(NSArray<NSString *> *)permissions
+          fromViewController:(nullable UIViewController *)fromViewController
+                     handler:(nullable FBSDKLoginManagerLoginResultBlock)handler
+NS_SWIFT_NAME(logIn(permissions:from:handler:));
 
-/*!
- @abstract Logs the user out
- @discussion This calls [FBSDKAccessToken setCurrentAccessToken:nil] and [FBSDKProfile setCurrentProfile:nil].
+/**
+ Logs the user in or authorizes additional permissions.
+
+ @param viewController the view controller from which to present the login UI. If nil, the topmost view
+ controller will be automatically determined and used.
+ @param configuration the login configuration to use.
+ @param completion the login completion handler.
+
+ Use this method when asking for permissions. You should only ask for permissions when they
+ are needed and the value should be explained to the user. You can inspect the
+ `FBSDKLoginManagerLoginResultBlock`'s `result.declinedPermissions` to provide more information
+ to the user if they decline permissions.
+ To reduce unnecessary login attempts, you should typically check if `AccessToken.current`
+ already contains the permissions you need. If it does, you probably do not need to call this method.
+
+ @warning You can only perform one login call at a time. Calling a login method before the completion handler is called
+ on a previous login attempt will result in an error.
+ @warning This method will present a UI to the user and thus should be called on the main thread.
+ */
+- (void)logInFromViewController:(nullable UIViewController *)viewController
+                  configuration:(FBSDKLoginConfiguration *)configuration
+                     completion:(FBSDKLoginManagerLoginResultBlock)completion
+NS_REFINED_FOR_SWIFT;
+
+/**
+ Logs the user in with the given deep link url. Will only log user in if the given url contains valid login data.
+ @param url the deep link url
+ @param handler the callback.
+
+This method will present a UI to the user and thus should be called on the main thread.
+This method should be called with the url from the openURL method.
+
+ @warning This method will present a UI to the user and thus should be called on the main thread.
+ */
+- (void)logInWithURL:(NSURL *)url
+             handler:(nullable FBSDKLoginManagerLoginResultBlock)handler
+NS_SWIFT_NAME(logIn(url:handler:));
+
+/**
+ Requests user's permission to reathorize application's data access, after it has expired due to inactivity.
+ @param fromViewController the view controller from which to present the login UI. If nil, the topmost view
+ controller will be automatically determined and used.
+ @param handler the callback.
+
+Use this method when you need to reathorize your app's access to user data via the Graph API.
+You should only call this after access has expired.
+You should provide as much context to the user as possible as to why you need to reauthorize the access, the
+scope of access being reathorized, and what added value your app provides when the access is reathorized.
+You can inspect the `result.declinedPermissions` to determine if you should provide more information to the
+user based on any declined permissions.
+
+ @warning This method will reauthorize using a `LoginConfiguration` with `FBSDKLoginTracking` set to `.enabled`.
+ @warning This method will present UI the user. You typically should call this if `AccessToken.isDataAccessExpired` is true.
+ */
+- (void)reauthorizeDataAccess:(UIViewController *)fromViewController
+                      handler:(FBSDKLoginManagerLoginResultBlock)handler
+NS_SWIFT_NAME(reauthorizeDataAccess(from:handler:));
+
+/**
+  Logs the user out
+
+ This nils out the singleton instances of `AccessToken` `AuthenticationToken` and `Profle`.
+
+ @note This is only a client side logout. It will not log the user out of their Facebook account.
  */
 - (void)logOut;
 
-/*!
- @method
-
- @abstract Issues an asychronous renewCredentialsForAccount call to the device's Facebook account store.
-
- @param handler The completion handler to call when the renewal is completed. This can be invoked on an arbitrary thread.
-
- @discussion This can be used to explicitly renew account credentials and is provided as a convenience wrapper around
- `[ACAccountStore renewCredentialsForAccount:completion]`. Note the method will not issue the renewal call if the the
- Facebook account has not been set on the device, or if access had not been granted to the account (though the handler
- wil receive an error).
-
- If the `[FBSDKAccessToken currentAccessToken]` was from the account store, a succesful renewal will also set
- a new "currentAccessToken".
- */
-+ (void)renewSystemCredentials:(void (^)(ACAccountCredentialRenewResult result, NSError *error))handler;
-
 @end
+
+#endif
+
+NS_ASSUME_NONNULL_END

--
Gitblit v1.8.0