Files
ifish/Ifish/UMCommunity/UMCommunitySDK/UMComModules/LoginHandler/UMComLoginHandler.m
T
2017-08-15 16:59:01 +08:00

106 lines
3.7 KiB
Objective-C

//
// UMengLoginHandler.m
// UMCommunity
//
// Created by Gavin Ye on 8/25/14.
// Copyright (c) 2014 Umeng. All rights reserved.
//
#import "UMComLoginHandler.h"
#import "UMComNavigationController.h"
#import <UMComNetwork/UMComHttpCode.h>
#import "UMComProfileSettingController.h"
@interface UMComLoginHandler()
@end
@implementation UMComLoginHandler
static UMComLoginHandler *_instance = nil;
+ (void)load
{
[self bindLoginHandler];
}
+ (void)bindLoginHandler
{
[UMComLoginManager shareInstance].loginHandler = [[self alloc] init];
}
- (void)setAppKey:(NSString *)appKey
{
}
- (BOOL)handleOpenURL:(NSURL *)url
{
return NO;
}
- (void)presentLoginViewController:(UIViewController *)viewController finishResponse:(void (^)(id, NSError *))completion
{
UMComLoginViewController *loginViewController = [[UMComLoginViewController alloc] init];
UMComNavigationController *navigationController = [[UMComNavigationController alloc] initWithRootViewController:loginViewController];
[viewController presentViewController:navigationController animated:YES completion:nil];
}
- (void)handleLoginError:(NSError *)error inViewController:(UIViewController *)rootViewController withLoginData:(UMComLoginUser *)loginUser
{
if (error.code == ERR_CODE_USER_NAME_LENGTH_ERROR || error.code == ERR_CODE_USER_NAME_SENSITIVE || error.code == ERR_CODE_USER_NAME_DUPLICATE || error.code == ERR_CODE_USER_NAME_CONTAINS_ILLEGAL_CHARS) {
[self updateProfileInViewController:rootViewController withLoginData:loginUser forRegisterSetting:YES completion:nil];
}
}
- (void)updateProfileInViewController:(UIViewController *)rootViewController withLoginData:(UMComLoginUser *)loginUser completion:(dispatch_block_t)completion
{
if (loginUser.updatedProfile) {
if (completion) {
completion();
}
return;
}
[self updateProfileInViewController:rootViewController withLoginData:loginUser forRegisterSetting:NO completion:completion];
}
- (void)updateProfileInViewController:(UIViewController *)rootViewController withLoginData:(UMComLoginUser *)loginUser forRegisterSetting:(BOOL)forRegister completion:(dispatch_block_t)completion
{
UMComProfileSettingController *profileController = [[UMComProfileSettingController alloc] init];
profileController.forRegister = forRegister;
profileController.updateCompletion = completion;
profileController.userAccount = loginUser;
UMComNavigationController *profileNaviController = [[UMComNavigationController alloc] initWithRootViewController:profileController];
[rootViewController presentViewController:profileNaviController animated:YES completion:nil];
}
#pragma mark - 显示推荐页面
- (void)handleEventAfterRegister:(UIViewController *)rootViewController completion:(dispatch_block_t)completion
{
[self showRecommendViewControllerWithLoginViewController:rootViewController loginComletion:completion];
}
- (void)showRecommendViewControllerWithLoginViewController:(UIViewController *)viewController loginComletion:(void (^)())loginCompletion
{
[self showRecommendTopicWithViewController:viewController completion:^(UIViewController *recommendTopicVC) {
[self showRecommendUserWithViewController:recommendTopicVC completion:^(UIViewController *recommendUserVC) {
[recommendUserVC dismissViewControllerAnimated:YES completion:loginCompletion];
}];
}];
}
- (void)showRecommendUserWithViewController:(UIViewController *)viewController
completion:(void (^)(UIViewController *recommendUserVC))completion
{
completion(nil);
}
- (void)showRecommendTopicWithViewController:(UIViewController *)viewController completion:(void (^)(UIViewController *recommendTopicVC))completion
{
completion(nil);
}
@end