// // GiGaMaskTaskViewController.m // GIGA // // Created by lianxiang on 2018/8/14. // Copyright © 2018年 com.giga.ios. All rights reserved. // #import "GiGaMaskTaskViewController.h" #import "MaskViewBootomWaringView.h" #import "GiGaUserLoginVC.h" #import "UserGuardViewController.h" #import "GiGaUserDefault.h" #import "GiGaAppGaurdVC.h" #import "GiGaMeViewController.h" #import "GiGaAdDetailViewController.h" #import "GiGaMasssagesVC.h" #import "GiGaQuestionVC.h" #import #import "GiGaLocalNotificationManager.h" #import "AppDelegate.h" #import "LXCountTimer.h" #import "GiGaHelper.h" #import #import "GiGaMeViewController.h" #import "GiGaFlyingCommitInputView.h" #import "GiGaFlingCommitVC.h" #import "MaskTimeCircularProgressView.h" //#import "UINavigationBar+Custom.h" #import "UIButton+WebCache.h" #import "GiGaUser.h" #import "GiGaUserManager.h" #import "GiGaBaseAPiRequest.h" #import "MaskTestResultVC.h" #import "GIGaMaskShareViewController.h" #import "MaskHistryRecord.h" #import "MaskTimeTopAnimationView.h" #import #import "GIGaDateHelper.h" @interface GiGaMaskTaskViewController () { AVAudioPlayer *_startMaskMusic; } @property (nonatomic,strong) UIButton *rightNavUserBtn; @property(nonatomic,strong)MaskViewBootomWaringView *waringView; @property(nonatomic,strong) UIImageView *maskImageView; @property(nonatomic,strong) UIImageView *faceView; @property (nonatomic,strong) UIImageView *hairImageView; @property(nonatomic) CGPoint attachPoint; @property(nonatomic,strong) MaskTimeCircularProgressView *cicleProgressView; @property(nonatomic,strong) UIImageView *swipeGaurdimagView; @property(nonatomic,strong) UIButton *startMaskButton; @property(nonatomic,strong) UIButton *startTestButton; //开启弹幕按钮 @property(nonatomic,strong) UIButton *openDanmuButton; //记录当前面试时间 记录开id @property(nonatomic,copy) NSString *currentMaskId; @property(nonatomic,strong) MaskTimeTopAnimationView *animLabeview; @end @implementation GiGaMaskTaskViewController #pragma mark - property - (MaskTimeTopAnimationView *)animLabeview{ if (!_animLabeview) { _animLabeview = [[MaskTimeTopAnimationView alloc] initWithFrame:CGRectMake(0,20+ PhoneX_TopMargin,KMainW - 40 * 2, 44)]; NSString *text = @"配合测试结果的时间敷面膜效果更好哦"; [_animLabeview animationWithTexts:[NSArray arrayWithObjects:text,@"面膜时间",text, nil]]; //_animLabeview.backgroundColor = [UIColor blueColor]; } return _animLabeview; } - (UIButton *)openDanmuButton{ if (!_openDanmuButton) { _openDanmuButton = [UIButton buttonWithType:UIButtonTypeCustom]; [_openDanmuButton addTarget:self action:@selector(openDanmuButtonAction) forControlEvents:UIControlEventTouchUpInside]; _openDanmuButton.backgroundColor = GIGARGB(112, 0, 0, 1); _openDanmuButton.frame = CGRectMake(KMainW - 25 -50,SAFE_NAV_HEIGHT + 15, 50, 20); _openDanmuButton.layer.masksToBounds = YES; _openDanmuButton.layer.cornerRadius = 10; NSAttributedString *att = [GiGaHelper stringWithText:@"弹幕" textColor:[UIColor whiteColor] textFont:GIGA_TEXTFONTMEDIUM(10) leterSpace:0]; [_openDanmuButton setAttributedTitle:att forState:UIControlStateNormal]; [_openDanmuButton setImage:[UIImage imageNamed:@"btn_talk"] forState:UIControlStateNormal]; //_openDanmuButton.imageEdgeInsets = UIEdgeInsetsMake(0, 0, 0, 0); _openDanmuButton.titleEdgeInsets = UIEdgeInsetsMake(0, -25, 0, 25); _openDanmuButton.hidden = YES; } return _openDanmuButton; } //面膜 - (UIImageView *)maskImageView{ if (!_maskImageView) { _maskImageView = [[UIImageView alloc] init]; _maskImageView.userInteractionEnabled = YES; //_maskImageView.backgroundColor = [UIColor purpleColor]; _maskImageView.image = [UIImage imageNamed:@"mask_img_mask"]; UISwipeGestureRecognizer * upSwipeGesture = [[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(maskupSwipeGesture)]; [upSwipeGesture setDirection:(UISwipeGestureRecognizerDirectionUp)]; [_maskImageView addGestureRecognizer:upSwipeGesture]; UITapGestureRecognizer *tapgesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(maskTapAction)]; [_maskImageView addGestureRecognizer:tapgesture]; } return _maskImageView; } //头发 - (UIImageView *)hairImageView{ if (!_hairImageView) { _hairImageView = [[UIImageView alloc] init]; _hairImageView.image = [UIImage imageNamed:@"mask_img_hair"]; } return _hairImageView; } //人脸 - (UIImageView *)faceView{ if (!_faceView) { _faceView = [[UIImageView alloc] init]; //_faceView.backgroundColor = [UIColor lightGrayColor]; _faceView.userInteractionEnabled = YES; _faceView.image = [UIImage imageNamed:@"mask_img_head"]; } return _faceView; } //倒计时圆环 - (MaskTimeCircularProgressView *)cicleProgressView{ if (!_cicleProgressView) { _cicleProgressView = [[MaskTimeCircularProgressView alloc] initWithFrame:CGRectMake(100, 251 + PhoneX_TopMargin, 125, 125) backColor:GIGARGB(88, 0, 2, 1) progressColor:[UIColor blueColor] lineWidth:10 timeinterval:10]; _cicleProgressView.delegate = self; _cicleProgressView.hidden = YES; UITapGestureRecognizer *cicleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(maskTimeCycleTapAction)]; [_cicleProgressView addGestureRecognizer:cicleTap]; } return _cicleProgressView; } //⬆️ - (UIImageView *)swipeGaurdimagView{ if (!_swipeGaurdimagView) { _swipeGaurdimagView = [[UIImageView alloc] init]; _swipeGaurdimagView.image = [UIImage imageNamed:@"mask_bg_up"]; } return _swipeGaurdimagView; } //开始面膜 - (UIButton *)startMaskButton{ if (!_startMaskButton) { _startMaskButton = [UIButton buttonWithType:UIButtonTypeCustom]; [_startMaskButton setBackgroundImage:[UIImage imageNamed:@"btn_start_mask"] forState:UIControlStateNormal]; NSAttributedString *title = [GiGaHelper stringWithText:@"开始敷面膜" textColor:[UIColor whiteColor] textFont:GIGA_TEXTFONTMEDIUM(13) leterSpace:0]; [_startMaskButton setAttributedTitle:title forState:UIControlStateNormal]; [_startMaskButton addTarget:self action:@selector(startMaskButtonAction) forControlEvents:UIControlEventTouchUpInside]; } return _startMaskButton; } //开始测试 - (UIButton *)startTestButton{ if (!_startTestButton) { _startTestButton = [UIButton buttonWithType:UIButtonTypeCustom]; [_startTestButton setBackgroundImage:[UIImage imageNamed:@"btn_start_test"] forState:UIControlStateNormal]; BOOL istest = [GiGaUserDefault isUserTest]; NSString *text = nil; if (istest) { text = @"重新测试"; }else{ text = @"测试肤质"; } NSAttributedString *title = [GiGaHelper stringWithText:text textColor:[UIColor whiteColor] textFont:GIGA_TEXTFONTBOLD(18) leterSpace:0]; [_startTestButton setAttributedTitle:title forState:UIControlStateNormal]; [_startTestButton addTarget:self action:@selector(testBtnAcion:) forControlEvents:UIControlEventTouchUpInside]; } return _startTestButton; } //底部提示栏 - (MaskViewBootomWaringView *)waringView{ if (!_waringView) { self.waringView = [[MaskViewBootomWaringView alloc] init]; self.waringView.frame = CGRectMake(0,CGRectGetMaxY(self.view.frame), self.view.frame.size.width, 60); } return _waringView; } #pragma mark 弹幕 -(void)createInputView{ GiGaFlingCommitVC* GiGaFlingVC = [[GiGaFlingCommitVC alloc] init]; if (ISIOS8) { GiGaFlingVC.modalPresentationStyle = UIModalPresentationOverCurrentContext; }else{ GiGaFlingVC.modalPresentationStyle = UIModalPresentationCurrentContext; } GiGaFlingVC.view.backgroundColor = [[UIColor blackColor] colorWithAlphaComponent:0.4]; [self presentViewController:GiGaFlingVC animated:NO completion:nil]; } #pragma mark - 生命周期 -(void)viewWillAppear:(BOOL)animated{ [super viewWillAppear:animated]; //取消导航对内容下移影响 [self.navigationController.navigationBar setTranslucent:YES]; } -(void)viewDidAppear:(BOOL)animated{ [super viewDidAppear:animated]; if([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) { self.navigationController.interactivePopGestureRecognizer.enabled = NO; } //  app引导页 BOOL showAppGaurd = [GiGaUserDefault isShowedAppGaurd]; if (showAppGaurd == NO) { [self showAPPappGaurdView]; } // [self showUserGaurdView]; } -(void)viewWillDisappear:(BOOL)animated{ [super viewWillDisappear:animated]; [self.navigationController.navigationBar setTranslucent:NO]; if([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) { self.navigationController.interactivePopGestureRecognizer.enabled = YES; } } - (void)viewDidLoad { [super viewDidLoad]; [self setUpNav]; [self initUI]; [self addNotify]; //[self creatBackGroundMusic]; [self creatMaskTimeSatrtMusic]; //判断是否有倒数计时 [self digIsMasking]; } -(void)digIsMasking{ AppDelegate *delegate =(AppDelegate *) [[UIApplication sharedApplication] delegate]; NSString *st = nil; if (delegate.isMasking) { NSLog(@"倒计时中"); st = @"YES"; [self animaMask]; }else{ st = @"NO"; } } #pragma mark - 响应事件 #pragma mark 上滑动手势 -(void)maskupSwipeGesture{ [self animaMask]; } #pragma mark 点击手势面膜时间 -(void)maskTapAction{ [self animaMask]; } #pragma mark 点击测试按钮 -(void)startMaskButtonAction{ [self animaMask]; } #pragma mark 圆环点击 结束倒计时 -(void)maskTimeCycleTapAction{ [self jxt_showAlertWithTitle:@"提示" message:@"确定结束面膜时间?" appearanceProcess:^(JXTAlertController * _Nonnull alertMaker) { alertMaker.addActionCancelTitle(@"取消"); alertMaker.addActionDefaultTitle(@"结束"); } actionsBlock:^(NSInteger buttonIndex, UIAlertAction * _Nonnull action, JXTAlertController * _Nonnull alertSelf) { if (buttonIndex == 1) { [self.cicleProgressView stop]; //手动结束时结束peding通知 [[GiGaLocalNotificationManager localNotifiationCenter] cancelAllLocalNoitification]; [GIGaDateHelper removeStartDate]; [GIGaDateHelper saveisMaskingflag:NO]; [self maskTimeEnd]; } }]; } #pragma mark - 开始面膜时间动画 合并 -(void)animaMask{ self.swipeGaurdimagView.hidden = YES; self.startMaskButton.hidden = YES; [self.view layoutIfNeeded]; [UIView animateWithDuration:1.0 animations:^{ [self.faceView mas_updateConstraints:^(MASConstraintMaker *make) { make.top.mas_equalTo(self.attachPoint.y -94); }]; [self.hairImageView mas_updateConstraints:^(MASConstraintMaker *make) { make.top.mas_equalTo(self.attachPoint.y - 94 - 34); }]; [self.maskImageView mas_updateConstraints:^(MASConstraintMaker *make) { make.top.mas_equalTo(self.attachPoint.y - 87); }]; [self.maskImageView setImage:[UIImage imageNamed:@"masking_img_mask"]]; [self.view layoutIfNeeded]; } completion:^(BOOL finished) { [self updateMaskingView]; }]; } #pragma mark 面膜中头像位置 -(void)updateMaskingView{ [self.view layoutIfNeeded]; [UIView animateWithDuration:1.0 animations:^{ [self.faceView mas_updateConstraints:^(MASConstraintMaker *make) { make.top.mas_equalTo(124 + PhoneX_TopMargin); }]; [self.hairImageView mas_updateConstraints:^(MASConstraintMaker *make) { make.top.mas_equalTo(90 + PhoneX_TopMargin); }]; [self.maskImageView mas_updateConstraints:^(MASConstraintMaker *make) { make.top.mas_equalTo(self.view.mas_top).offset(90 + PhoneX_TopMargin +43); }]; [self.view layoutIfNeeded]; } completion:^(BOOL finished) { self.cicleProgressView.hidden = NO; self.maskImageView.userInteractionEnabled = NO; [self startMaskTime]; }]; } #pragma mark 面膜时间结束复原动画 -(void)endMaskAnimation{ [self.maskImageView setImage:[UIImage imageNamed:@"mask_img_mask"]]; self.cicleProgressView.hidden = YES; self.swipeGaurdimagView.hidden = NO; self.startMaskButton.hidden = NO; [self.view layoutIfNeeded]; [UIView animateWithDuration:1.0 animations:^{ [self.faceView mas_updateConstraints:^(MASConstraintMaker *make) { make.top.mas_equalTo(124 + PhoneX_TopMargin); }]; [self.hairImageView mas_updateConstraints:^(MASConstraintMaker *make) { make.top.mas_equalTo(90 + PhoneX_TopMargin); }]; [self.maskImageView mas_updateConstraints:^(MASConstraintMaker *make) { make.top.mas_equalTo(254 + PhoneX_TopMargin); }]; //[self.view layoutIfNeeded]; } completion:^(BOOL finished) { self.maskImageView.userInteractionEnabled = YES; }]; } #pragma mark 布局 -(void)initUI{ self.view.backgroundColor = GIGA_MAIN_BGCOLOR; [self.view addSubview:self.openDanmuButton]; [self.view addSubview:self.faceView]; [self.view addSubview:self.maskImageView]; [self.view addSubview:self.hairImageView]; //[self.view bringSubviewToFront:self.maskImageView]; [self.view addSubview:self.swipeGaurdimagView]; [self.view addSubview:self.startMaskButton]; [self.view addSubview:self.startTestButton]; [self.view addSubview:self.cicleProgressView]; //face [self.faceView mas_makeConstraints:^(MASConstraintMaker *make) { make.top.mas_equalTo(self.view.mas_top).offset(124 + PhoneX_TopMargin); make.size.mas_equalTo(CGSizeMake(77, 94)); make.centerX.mas_equalTo(self.view.mas_centerX); //make.left.mas_equalTo(self.view.mas_left).offset(153); }]; //hair [self.hairImageView mas_makeConstraints:^(MASConstraintMaker *make) { make.top.mas_equalTo(self.view.mas_top).offset(90 + PhoneX_TopMargin); make.size.mas_equalTo(CGSizeMake(97, 109)); //make.centerX.mas_equalTo(self.view.mas_centerX); make.left.mas_equalTo(self.faceView.mas_left).offset(-14); }]; //mask [self.maskImageView mas_makeConstraints:^(MASConstraintMaker *make) { make.top.mas_equalTo(self.view.mas_top).offset(254 + PhoneX_TopMargin); make.size.mas_equalTo(CGSizeMake(72, 87)); //make.centerX.mas_equalTo(self.view.mas_centerX); make.left.mas_equalTo(self.faceView.mas_left); }]; //circle [self.cicleProgressView mas_makeConstraints:^(MASConstraintMaker *make) { make.top.mas_equalTo(self.view.mas_top).offset(251 + PhoneX_TopMargin); make.size.mas_equalTo(CGSizeMake(125, 125)); make.centerX.mas_equalTo(self.view.mas_centerX); }]; //up [self.swipeGaurdimagView mas_makeConstraints:^(MASConstraintMaker *make) { make.top.mas_equalTo(self.view.mas_top).offset(368 + PhoneX_TopMargin); make.width.and.height.mas_equalTo(20); make.centerX.mas_equalTo(self.view.mas_centerX); }]; //startMask [self.startMaskButton mas_makeConstraints:^(MASConstraintMaker *make) { make.top.mas_equalTo(self.view.mas_top).offset(412 + PhoneX_TopMargin); make.size.mas_equalTo(CGSizeMake(117, 25)); make.centerX.mas_equalTo(self.view.mas_centerX); }]; //startTest [self.startTestButton mas_makeConstraints:^(MASConstraintMaker *make) { make.top.mas_equalTo(self.view.mas_top).offset(476 + PhoneX_TopMargin); make.size.mas_equalTo(CGSizeMake(132, 41)); make.centerX.mas_equalTo(self.view.mas_centerX); }]; [self.view layoutIfNeeded]; CGFloat Y = CGRectGetMaxY(self.faceView.frame) + (CGRectGetMaxY(self.maskImageView.frame) - CGRectGetMaxY(self.faceView.frame)) / 2; CGFloat X = CGRectGetMidX(self.view.frame); // 下巴合并位置 CGPoint anchorPoint = CGPointMake(X, Y); self.attachPoint = anchorPoint; [self.cicleProgressView mas_makeConstraints:^(MASConstraintMaker *make) { make.top.mas_equalTo(Y + 68); make.height.and.width.mas_equalTo(136); make.centerX.mas_equalTo(self.view.mas_centerX); }]; } #pragma mark 面膜时间背景音乐 -(void)creatBackGroundMusic{ //初始化音频播放器 NSError *payerError; NSURL *musicUrl = [[NSURL alloc] initWithString:[[NSBundle mainBundle] pathForResource:@"pomodoSound" ofType:@"m4a"]] ; AVAudioPlayer *player = [[AVAudioPlayer alloc] initWithContentsOfURL:musicUrl error:&payerError]; player.numberOfLoops = -1;//-1 无限 player.volume = 0; //_musicPalyer = player; [[AVAudioSession sharedInstance] setActive:YES error:nil]; //设置后台模式和锁屏模式下依然能够播放 [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback withOptions:AVAudioSessionCategoryOptionMixWithOthers error:nil]; } #pragma mark 开始面膜时间提示音🎵 -(void)creatMaskTimeSatrtMusic{ //初始化音频播放器 NSError *payerError; NSURL *musicUrl = [[NSURL alloc] initWithString:[[NSBundle mainBundle] pathForResource:@"ogg_btn" ofType:@"mp3"]] ; AVAudioPlayer *player = [[AVAudioPlayer alloc] initWithContentsOfURL:musicUrl error:&payerError]; player.numberOfLoops = 2; player.volume = 0.5; _startMaskMusic = player; [[AVAudioSession sharedInstance] setActive:YES error:nil]; //设置后台模式和锁屏模式下依然能够播放 [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback withOptions:AVAudioSessionCategoryOptionMixWithOthers error:nil]; } #pragma mark 开始面膜时间 -(void)startMaskTime{ self.openDanmuButton.hidden = YES; //记录 [self sendBengainMaskTime]; [self createInputView]; //出现弹幕 AppDelegate *delegate =(AppDelegate *) [[UIApplication sharedApplication] delegate]; NSTimeInterval timeInterVal = [GiGaUserDefault getUserMaskeTime]; [self.cicleProgressView startWith:timeInterVal]; delegate.isMasking = YES; [_startMaskMusic play]; //[_musicPalyer play]; // [self setBackGroundPlayingInfo];//锁屏音频信息 //底部弹窗 //[self showWaringView]; //app 前台时收到本地通知showAlert 后台时通知提醒 [[GiGaLocalNotificationManager localNotifiationCenter] sendLocalNotification:@"面膜时间结束" fireTimeInterval:timeInterVal alertAction:@"面膜时间提醒" withIdentifier:kLOCALNotifiID_MASKETIMEEND]; } #pragma mark 设置后台锁屏音频信息 -(void)setBackGroundPlayingInfo{ MPMediaItemArtwork *arwork = [[MPMediaItemArtwork alloc] initWithImage:[UIImage imageNamed:@"MaskTime.png"]]; NSDictionary *dic = @{ MPMediaItemPropertyTitle:@"面膜时间", MPMediaItemPropertyAlbumArtist:@"面膜时间", MPMediaItemPropertyArtist:@"敷膜中", MPMediaItemPropertyAlbumTitle:@"敷膜中", MPMediaItemPropertyGenre:@"???", MPMediaItemPropertyLyrics:@"面膜", MPMediaItemPropertyPodcastTitle:@"PodcastTitle", MPMediaItemPropertyArtwork:arwork }; [[MPNowPlayingInfoCenter defaultCenter] setNowPlayingInfo:dic]; [[UIApplication sharedApplication] beginReceivingRemoteControlEvents]; } - (void)remoteControlReceivedWithEvent: (UIEvent *) receivedEvent { if (receivedEvent.type == UIEventTypeRemoteControl) { switch (receivedEvent.subtype) { case UIEventSubtypeRemoteControlPlay: //暂时不处理 //[_musicPalyer play]; break; case UIEventSubtypeRemoteControlPause: // [_musicPalyer pause]; break; default: NSLog(@"没有处理过这个事件------receivedEvent.subtype==%ld",(long)receivedEvent.subtype); break; } } } #pragma mark 面膜时间结束 -(void)maskTimeEnd{ self.openDanmuButton.hidden = YES; [self sendEndMaskTime]; NC_POST_NAME_OBJECT(kUserNoti_MASKEND, nil); //面膜时间结束时设置 全局变量 不再发送本地通知 提醒 AppDelegate *delegate =(AppDelegate *) [[UIApplication sharedApplication] delegate]; delegate.isMasking = NO; //[_musicPalyer stop]; //震动 需用户手动开启震动模式 AudioServicesPlaySystemSound(kSystemSoundID_Vibrate); //复原动画 [self endMaskAnimation]; } #pragma mark 开始测试 -(void)testBtnAcion:(UIButton *)btn{ // GIGaMaskShareViewController *shareVC = [[GIGaMaskShareViewController alloc] init]; // shareVC.maskTimeId = self.currentMaskId; // [self.navigationController pushViewController:shareVC animated:YES]; // return; // NSDictionary *dic = @{ // @"dryness":@"0.41", // @"drynessPercent":@"41%", // @"mask":@"", // @"minute":@"19", // @"oiliness":@"0.59", // @"oilinessPercent":@"59%" // }; // MaskTestResult *model =[[MaskTestResult alloc] initWithDictionary:dic error:nil]; // MaskTestResultVC *resultVC = [[MaskTestResultVC alloc] init]; // resultVC.model = model; // [self.navigationController pushViewController:resultVC animated:YES]; // [self showAlertGoShareMaskTime]; [self startTest]; } -(void)startTest{ GiGaQuestionVC *questionVC = [[GiGaQuestionVC alloc] init]; [self.navigationController pushViewController:questionVC animated:YES]; } -(void)addNotify{ //引导页 NC_ADD_TARGET_NAME_OBJECT(self, @selector(guardViewDissmiss), USER_GUARD_DISSMISS, nil) ; NC_ADD_TARGET_NAME_OBJECT(self, @selector(appGauardViewDissmiss),APP_GUARD_DISSMISS, nil) ; NC_ADD_TARGET_NAME_OBJECT(self, @selector(pushToAppAdDetailView),APP_PUSHTO_DETAILVIEW, nil) ; NC_ADD_TARGET_NAME_OBJECT(self, @selector(userLoginNotify), kUserLoginSuccessNoti, nil); NC_ADD_TARGET_NAME_OBJECT(self, @selector(userlogOutNotify), kUserLogOutNotify, nil); NC_ADD_TARGET_NAME_OBJECT(self, @selector(userAvatorUpDate), kUserAvatorUpdateNoti, nil) ; //用户关闭弹幕聊天 NC_ADD_TARGET_NAME_OBJECT(self, @selector(userCloseChatRoomAction), @"UserCloseChatRoomAction", nil); // NC_ADD_TARGET_NAME_OBJECT(self, @selector(flingcommitViewTestAreaAction), @"flingcommitViewTestAreaAction", nil); //测试肤质flag 状态更新 NC_ADD_TARGET_NAME_OBJECT(self, @selector(testfalgUpdateAction), @"testfalgUpdate", nil); } //弹幕界面点击测试按钮区域 -(void)flingcommitViewTestAreaAction{ [self startTest]; } //测试按钮状态更新通知 -(void)testfalgUpdateAction{ NSAttributedString *title = [GiGaHelper stringWithText:@"重新测试" textColor:[UIColor whiteColor] textFont:GIGA_TEXTFONTBOLD(18) leterSpace:0]; [_startTestButton setAttributedTitle:title forState:UIControlStateNormal]; } #pragma mark 广告详情 -(void)pushToAppAdDetailView{ GiGaAdDetailViewController *detailVC=[[GiGaAdDetailViewController alloc] init]; [self.navigationController pushViewController:detailVC animated:YES]; } #pragma mark 新手引导蒙版消失 -(void)guardViewDissmiss{ self.swipeGaurdimagView.hidden = NO; self.startMaskButton.hidden = NO; [self showWaringView]; } #pragma mark app引导页消失 -(void)appGauardViewDissmiss{ //出现新手引导 BOOL isshowGaurd = [GiGaUserDefault isShowedGaurd]; if (isshowGaurd == NO) { NSLog(@"%d",(int)isshowGaurd ); [self showUserGaurdView]; } } -(void)dealloc{ NC_REMOVE_NAME(self, USER_GUARD_DISSMISS, nil); NC_REMOVE_NAME(self, APP_GUARD_DISSMISS, nil); NC_REMOVE_NAME(self, APP_PUSHTO_DETAILVIEW, nil); NC_REMOVE_NAME(self, kUserAvatorUpdateNoti, nil); NC_REMOVE_NAME(self, kUserLogOutNotify, nil); NC_REMOVE_NAME(self, kUserLoginSuccessNoti, nil); NC_REMOVE_NAME(self, @"UserCloseChatRoomAction", nil); NC_REMOVE_NAME(self, @"flingcommitViewTestAreaAction",nil); NC_REMOVE_NAME(self,@"testfalgUpdate",nil); } #pragma mark 新手引导 -(void)showUserGaurdView{ self.swipeGaurdimagView.hidden = YES; self.startMaskButton.hidden = YES; UserGuardViewController *userGuardVC = [[UserGuardViewController alloc] init]; if (ISIOS8) { userGuardVC.modalPresentationStyle = UIModalPresentationOverCurrentContext; }else{ userGuardVC.modalPresentationStyle = UIModalPresentationCurrentContext; } userGuardVC.view.backgroundColor = [[UIColor blackColor] colorWithAlphaComponent:0.4]; [self presentViewController:userGuardVC animated:NO completion:nil]; } #pragma mark App引导页 -(void)showAPPappGaurdView{ GiGaAppGaurdVC *gaurdVC = [[GiGaAppGaurdVC alloc] init]; [self presentViewController:gaurdVC animated:YES completion:nil]; } #pragma mark - 导航按钮 -(void)setUpNav{ //leftItem UIButton *leftBtn = [UIButton buttonWithType:UIButtonTypeCustom]; leftBtn.frame = CGRectMake(0, 0, 40, 40); //leftBtn.backgroundColor = [UIColor redColor]; //[leftBtn setImage:[UIImage imageNamed:@"btn_back"] forState:UIControlStateNormal]; //[leftBtn addTarget:self action:@selector(leftBtnAction) forControlEvents:UIControlEventTouchUpInside]; self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:leftBtn]; //rightItem UIButton *rightBtn = [UIButton buttonWithType:UIButtonTypeCustom]; rightBtn.frame = CGRectMake(0, 0, 40, 40); rightBtn.layer.masksToBounds = YES; rightBtn.layer.cornerRadius = 20; [rightBtn setImage:[UIImage imageNamed:@"nav_circle_avatar"] forState:UIControlStateNormal]; self.rightNavUserBtn = rightBtn; [rightBtn addTarget:self action:@selector(rightBtnAction) forControlEvents:UIControlEventTouchUpInside]; self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:rightBtn]; if ([[[UIDevice currentDevice] systemVersion] doubleValue] >= 11.0) { [self.rightNavUserBtn mas_makeConstraints:^(MASConstraintMaker *make) { make.size.mas_equalTo(CGSizeMake(40, 40)); }]; } BOOL isUserLogin = [GiGaUserDefault isUserLogin]; if (isUserLogin) { GiGaUser *user = [[GiGaUserManager shareUser] getCurrentUser]; if (user) { if (user.headImgUrl && ![user.headImgUrl isKindOfClass:[NSNull class]]) { [self refreshUserIcon:user.headImgUrl]; } } } self.navigationController.navigationBar.backgroundColor = [UIColor whiteColor]; } #pragma mark 用户头像更新 -(void)refreshUserIcon:(NSString *)imageUrl{ NSURL *url = [NSURL URLWithString:imageUrl]; // [self.rightNavUserBtn sd_setImageWithURL:url forState:UIControlStateNormal]; [self.rightNavUserBtn sd_setImageWithURL:url forState:UIControlStateNormal placeholderImage:[UIImage imageNamed:@"nav_circle_avatar"] completed:^(UIImage * _Nullable image, NSError * _Nullable error, SDImageCacheType cacheType, NSURL * _Nullable imageURL) { }]; } #pragma mark 消息 action -(void)leftBtnAction{ BOOL isUserLogin = [GiGaUserDefault isUserLogin]; if (isUserLogin) { GiGaMasssagesVC *masageVC= [[GiGaMasssagesVC alloc] init]; [self.navigationController pushViewController:masageVC animated:YES]; }else{ GiGaUserLoginVC *userlogInVC= [[GiGaUserLoginVC alloc] init]; GiGaBaseNavViewController *baseNav = [[GiGaBaseNavViewController alloc] initWithRootViewController:userlogInVC]; [self presentViewController:baseNav animated:YES completion:nil]; } } #pragma mark 个人中心 action -(void)rightBtnAction{ BOOL isUserLogin = [GiGaUserDefault isUserLogin]; if (isUserLogin) { GiGaMeViewController *meVC= [[GiGaMeViewController alloc] init]; [self.navigationController pushViewController:meVC animated:YES]; }else{ GiGaUserLoginVC *userlogInVC= [[GiGaUserLoginVC alloc] init]; GiGaBaseNavViewController *baseNav = [[GiGaBaseNavViewController alloc] initWithRootViewController:userlogInVC]; [self presentViewController:baseNav animated:YES completion:nil]; } } #pragma mark -bottomView -(void)showWaringView{ [self.view addSubview:self.waringView]; [UIView animateWithDuration:0.4 animations:^{ self.waringView.frame = CGRectMake(0,CGRectGetMaxY(self.view.frame) - 44 - PhoneX_BottomMargin, self.view.frame.size.width, 44); }]; [self.waringView showView]; } #pragma mark - MaskCirCularProGressViewDelegate - (void)updateProgressViewWith:(NSTimeInterval)timeInterval{ } - (void)progressDidFish{ NSLog(@"结束"); [self maskTimeEnd]; [self showAlertGoShareMaskTime]; } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } #pragma mark - 登录成功通知接收 -(void)userLoginNotify{ GiGaUser *user = [[GiGaUserManager shareUser] getCurrentUser]; if (user.headImgUrl && ![user.headImgUrl isKindOfClass:[NSNull class]] ) { [self refreshUserIcon:user.headImgUrl]; } } #pragma mark - 退出登录通知 -(void)userlogOutNotify{ [self.rightNavUserBtn setImage:[UIImage imageNamed:@"nav_circle_avatar"] forState:UIControlStateNormal]; } #pragma mark -用户头像更新 -(void)userAvatorUpDate{ GiGaUser *user = [[GiGaUserManager shareUser] getCurrentUser]; if (user.headImgUrl && ![user.headImgUrl isKindOfClass:[NSNull class]] ) { [self refreshUserIcon:user.headImgUrl]; } } #pragma mark 去分享 -(void)showAlertGoShareMaskTime{ if (self.currentMaskId == nil) { return; } BOOL isUserLogin = [GiGaUserDefault isUserLogin]; if (isUserLogin) { //游客不分享 [self jxt_showAlertWithTitle:@"面膜时间" message:@"去分享我的面膜时间" appearanceProcess:^(JXTAlertController * _Nonnull alertMaker) { alertMaker.addActionCancelTitle(@"下次"); alertMaker.addActionDefaultTitle(@"去分享"); } actionsBlock:^(NSInteger buttonIndex, UIAlertAction * _Nonnull action, JXTAlertController * _Nonnull alertSelf) { if (buttonIndex == 1) { GIGaMaskShareViewController *shareVC = [[GIGaMaskShareViewController alloc] init]; shareVC.maskTimeId = self.currentMaskId; [self.navigationController pushViewController:shareVC animated:YES]; } }]; } } #pragma mark - 开启弹幕按钮事件 -(void)openDanmuButtonAction{ [self createInputView]; } //通知用户挂断弹幕 -(void)userCloseChatRoomAction{ self.openDanmuButton.hidden = NO; } #pragma mark 开始敷面膜 APi -(void)sendBengainMaskTime{ BOOL isUserLogin = [GiGaUserDefault isUserLogin]; if (isUserLogin) { NSTimeInterval timeInterVal = [GiGaUserDefault getUserMaskeTime]; NSString *minute = [NSString stringWithFormat:@"%.1f",timeInterVal / 60]; GiGaBaseAPiRequest *api = [GiGaBaseAPiRequest initWithRequestPath:KApiBeginMaskTime method:RequestPostMethod parms:@{@"minute":minute}]; [api requstDataWithResult:^(GiGaAPIResult *result) { if (result.success) { NSDictionary *maskDic = result.dic[@"maskUseLog"]; self.currentMaskId = maskDic[@"id"]; } }]; } } #pragma mark 结束敷面膜 APi -(void)sendEndMaskTime{ BOOL isUserLogin = [GiGaUserDefault isUserLogin]; if (isUserLogin) { if (self.currentMaskId) { GiGaBaseAPiRequest *api = [GiGaBaseAPiRequest initWithRequestPath:kApiEndMaskTime method:RequestPostMethod parms:@{@"id":self.currentMaskId}]; [api requstDataWithResult:^(GiGaAPIResult *result) { if (result.success) { GILog(@"%@",@"面膜时间APi结束"); } }]; } } } -(void)addNavTitile:(NSString *)title{ self.navigationItem.titleView = self.animLabeview; } @end