// // HBFirstStartController.m // QinJiuTV // // Created by HI_LOSER on 2024/6/6. // #import "HBFirstStartController.h" @interface HBFirstStartController () @property (strong, nonatomic) NSMutableArray * menuItems; @end @implementation HBFirstStartController - (NSMutableArray *)menuItems{ if (!_menuItems) { _menuItems = [[NSMutableArray alloc]init]; for (HBLanguageModel * model in [HBMultiLanguageManager languages]) { KxMenuItem * element = [KxMenuItem menuItem:model.title image:nil target:self action:@selector(menuItemAction:)]; element.object = model; [_menuItems addObject:element]; } } return _menuItems; } + (UIViewController *) navigationController { return [[HBNavigationController alloc]initWithRootViewController:[HBFirstStartController new]]; } - (void)viewDidLoad { [super viewDidLoad]; self.hbd_barHidden = YES; [self loadSubViews]; [self loadNavigationBar]; } - (void)loadNavigationBar { UIButton * button = [[UIButton alloc]init]; button.titleLabel.font = [UIFont systemFontOfSize:14.0 weight:UIFontWeightRegular]; [button setTitle:[@"mine_title_language" language] forState:UIControlStateNormal]; [button setTitleColor:UIColor.whiteColor forState:UIControlStateNormal]; [button addTarget:self action:@selector(changeLanguage) forControlEvents:UIControlEventTouchUpInside]; self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc]initWithCustomView:button]; } - (void)loadSubViews { UIImageView * backgroundView = [UIImageView imageNamed:@"login_background"]; backgroundView.contentMode = UIViewContentModeScaleToFill; [self.view addSubview:backgroundView]; UIView * view = [[UIView alloc] init]; view.backgroundColor = UIColor.whiteColor; [view acs_radiusWithRadius:18.0 corner:UIRectCornerAllCorners]; [self.view addSubview:view]; UIImageView * headerView = [UIImageView imageNamed:@"universal_frist_header"]; [view addSubview:headerView]; UILabel * titleLabel = [[UILabel alloc] init]; titleLabel.text = [@"first_start_title" language]; titleLabel.font = [UIFont systemFontOfSize:18.0 weight:UIFontWeightSemibold]; titleLabel.textAlignment = NSTextAlignmentCenter; [view addSubview:titleLabel]; UIButton * closeButton = [[UIButton alloc]init]; closeButton.titleLabel.font = [UIFont systemFontOfSize:14.0 weight:UIFontWeightRegular]; [closeButton setTitle:[@"first_start_close" language] forState:UIControlStateNormal]; [closeButton setTitleColor:HBColor.color_999999 forState:UIControlStateNormal]; [closeButton addTarget:self action:@selector(closeAction) forControlEvents:UIControlEventTouchUpInside]; [view addSubview:closeButton]; UIButton * agreeButton = [[UIButton alloc]init]; [agreeButton acs_radiusWithRadius:20.0 corner:UIRectCornerAllCorners]; agreeButton.titleLabel.font = [UIFont systemFontOfSize:14.0 weight:UIFontWeightRegular]; [agreeButton setTitle:[@"first_start_done" language] forState:UIControlStateNormal]; [agreeButton setTitleColor:HBColor.whiteColor forState:UIControlStateNormal]; [agreeButton setBackgroundImage:[UIImage imageNamed:@"publics_gradient"] forState:UIControlStateNormal]; [agreeButton addTarget:self action:@selector(agreeAction) forControlEvents:UIControlEventTouchUpInside]; [view addSubview:agreeButton]; NSString * privacy = [@"commom_highlight_privacy" language]; NSString * agreement = [@"commom_highlight_agreement" language]; NSString * user = [@"commom_highlight_user" language]; NSString * third = [@"commom_highlight_third" language]; NSString * children = [@"commom_highlight_children" language]; NSString * teenager = [@"commom_highlight_teenager" language]; NSString * string = [NSString stringWithFormat:[@"first_start_text" language],privacy,agreement,user,third,children,teenager]; NSRange privacyRange = [string rangeOfString:privacy]; NSRange agreementRange = [string rangeOfString:agreement]; NSRange userRange = [string rangeOfString:user]; NSRange thirdRange = [string rangeOfString:third]; NSRange childrenRange = [string rangeOfString:children]; NSRange teenagerRange = [string rangeOfString:teenager]; HBWeakSelf NSMutableAttributedString * attributedText = [[NSMutableAttributedString alloc]initWithString:string]; attributedText.yy_lineSpacing = 4.0; attributedText.yy_font = [UIFont systemFontOfSize:14.0 weight:UIFontWeightRegular]; [attributedText yy_setTextHighlightRange:privacyRange color:HBColor.color_FF0049 backgroundColor:nil tapAction:^(UIView * _Nonnull containerView, NSAttributedString * _Nonnull text, NSRange range, CGRect rect) { [weakSelf.navigationController pushViewController:[HBWebViewController privacyPolicy] animated:YES]; }]; [attributedText yy_setTextHighlightRange:agreementRange color:HBColor.color_FF0049 backgroundColor:nil tapAction:^(UIView * _Nonnull containerView, NSAttributedString * _Nonnull text, NSRange range, CGRect rect) { [weakSelf.navigationController pushViewController:[HBWebViewController userAgreement] animated:YES]; }]; [attributedText yy_setTextHighlightRange:userRange color:HBColor.color_FF0049 backgroundColor:nil tapAction:^(UIView * _Nonnull containerView, NSAttributedString * _Nonnull text, NSRange range, CGRect rect) { [weakSelf.navigationController pushViewController:[HBWebViewController contactCustomerService] animated:YES]; }]; [attributedText yy_setTextHighlightRange:thirdRange color:HBColor.color_FF0049 backgroundColor:nil tapAction:^(UIView * _Nonnull containerView, NSAttributedString * _Nonnull text, NSRange range, CGRect rect) { [weakSelf.navigationController pushViewController:[HBWebViewController contactCustomerService] animated:YES]; }]; [attributedText yy_setTextHighlightRange:childrenRange color:HBColor.color_FF0049 backgroundColor:nil tapAction:^(UIView * _Nonnull containerView, NSAttributedString * _Nonnull text, NSRange range, CGRect rect) { [weakSelf.navigationController pushViewController:[HBWebViewController contactCustomerService] animated:YES]; }]; [attributedText yy_setTextHighlightRange:teenagerRange color:HBColor.color_FF0049 backgroundColor:nil tapAction:^(UIView * _Nonnull containerView, NSAttributedString * _Nonnull text, NSRange range, CGRect rect) { [weakSelf.navigationController pushViewController:[HBWebViewController contactCustomerService] animated:YES]; }]; YYTextView * textView = [[YYTextView alloc]init]; textView.attributedText = attributedText; textView.editable = NO; textView.showsVerticalScrollIndicator = NO; textView.showsHorizontalScrollIndicator = NO; [view addSubview:textView]; [backgroundView mas_makeConstraints:^(MASConstraintMaker *make) { make.edges.equalTo(self.view); }]; [view mas_makeConstraints:^(MASConstraintMaker *make) { make.right.offset(-36.0); make.left.offset(36.0); make.center.equalTo(self.view); }]; [headerView mas_makeConstraints:^(MASConstraintMaker *make) { make.top.left.right.equalTo(view); }]; [titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { make.left.bottom.right.equalTo(headerView); }]; [closeButton mas_makeConstraints:^(MASConstraintMaker *make) { make.centerX.equalTo(view); make.bottom.equalTo(view).offset(-16.0); }]; [agreeButton mas_makeConstraints:^(MASConstraintMaker *make) { make.left.offset(16.0); make.right.offset(-16.0); make.bottom.equalTo(closeButton.mas_top).offset(-12.0); make.height.offset(40.0); }]; [textView mas_makeConstraints:^(MASConstraintMaker *make) { make.left.offset(16.0); make.right.offset(-16.0); make.top.equalTo(headerView.mas_bottom).offset(12.0); make.bottom.equalTo(agreeButton.mas_top).offset(-18.0); make.height.offset(240.0); }]; } - (void)changeLanguage { CGRect rect = [self.navigationItem.rightBarButtonItem.customView convertRect:self.navigationItem.rightBarButtonItem.customView.bounds toView:self.view]; [KxMenu showMenuInView:self.view fromRect:rect menuItems:self.menuItems]; } - (void)menuItemAction:(KxMenuItem *)sender { HBLanguageModel * model = (HBLanguageModel*)sender.object; [HBMultiLanguageManager saveCurrentLanguageAbbr:model.abbr]; } - (void)agreeAction { HBResponseComplateBlock block = ^(BOOL success, id _Nonnull data, NSString * _Nonnull message) { [HUDManager hideHUD]; if (success) { [NSUserDefaults setBool:YES forKey:HBNotFirstStartKey]; [NSNotificationCenter postNotificationName:HBFirstStartNotification object:nil]; } }; [HUDManager showActivityHUD]; [HBNetWorkingUtility commom_deviceRegisterWithComplateBlock:block]; } - (void)closeAction { UIAlertAction * exitAction = [UIAlertAction actionWithTitle:[@"first_start_exit" language] style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { exit(0); }]; UIAlertAction * waitAction = [UIAlertAction actionWithTitle:[@"first_start_wait" language] style:UIAlertActionStyleDestructive handler:^(UIAlertAction * _Nonnull action) { }]; UIAlertController * alertController = [UIAlertController alertControllerWithTitle:@"提示" message:@"APP 即将退出" preferredStyle:UIAlertControllerStyleAlert]; [alertController addAction:exitAction]; [alertController addAction:waitAction]; [self presentViewController:alertController animated:YES completion:nil]; } @end