GiGaMaskTime/GIGA/Modules/Mask/Controller/GiGaMaskTaskViewController.m

933 lines
33 KiB
Objective-C
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//
// 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 <AVFoundation/AVFoundation.h>
#import "GiGaLocalNotificationManager.h"
#import "AppDelegate.h"
#import "LXCountTimer.h"
#import "GiGaHelper.h"
#import <MediaPlayer/MediaPlayer.h>
#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 <AudioToolbox/AudioToolbox.h>
#import "GIGaDateHelper.h"
@interface GiGaMaskTaskViewController ()<MaskCirCularProGressViewDelegate,MaskTimeTextViewDelegate>
{
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