Commit a9b75049999aef68352fed80cf5956b484117850

Authored by yanglingyu
1 parent e601e862

消息通知开发

CNLiveCMineModule/Classes/CNCSubMine/Model/CNMySettingListModel.h
@@ -38,3 +38,9 @@ typedef enum { @@ -38,3 +38,9 @@ typedef enum {
38 @property (nonatomic, copy) NSString *isHidden; 38 @property (nonatomic, copy) NSString *isHidden;
39 39
40 @end 40 @end
  41 +
  42 +@interface CNMessageNoteModel : NSObject
  43 +@property (nonatomic, copy)NSString *title;
  44 +@property (nonatomic, copy)NSString *sys_type;
  45 +@property (nonatomic, assign)BOOL state;
  46 +@end
CNLiveCMineModule/Classes/CNCSubMine/Model/CNMySettingListModel.m
@@ -11,3 +11,7 @@ @@ -11,3 +11,7 @@
11 @implementation CNMySettingListModel 11 @implementation CNMySettingListModel
12 12
13 @end 13 @end
  14 +
  15 +@implementation CNMessageNoteModel
  16 +
  17 +@end
CNLiveCMineModule/Classes/CNCSubMine/Present/CNCSubMinePresent.h
@@ -57,7 +57,8 @@ typedef void (^CNLoginResponseBlock)(NSURLSessionTask *requestTask, id responseO @@ -57,7 +57,8 @@ typedef void (^CNLoginResponseBlock)(NSURLSessionTask *requestTask, id responseO
57 /// @param statue 状态 57 /// @param statue 状态
58 +(void)showWithScoreViewForScoreIntergal:(NSString *)scoreIntergal Statue:(BOOL)statue SuperView:(UIViewController *)superView; 58 +(void)showWithScoreViewForScoreIntergal:(NSString *)scoreIntergal Statue:(BOOL)statue SuperView:(UIViewController *)superView;
59 59
60 - 60 +/// 获取消息提醒列表
  61 ++ (NSArray *)getMessageNotificationList;
61 @end 62 @end
62 63
63 NS_ASSUME_NONNULL_END 64 NS_ASSUME_NONNULL_END
CNLiveCMineModule/Classes/CNCSubMine/Present/CNCSubMinePresent.m
@@ -92,6 +92,13 @@ @@ -92,6 +92,13 @@
92 @"cellType":@30 92 @"cellType":@30
93 }, 93 },
94 @{ 94 @{
  95 + @"title":@"消息通知",
  96 + @"image":@"",
  97 + @"rowHeight":@56,
  98 + @"lineHeight":@1,
  99 + @"cellType":@30
  100 + },
  101 + @{
95 @"title":@"金币音量开关", 102 @"title":@"金币音量开关",
96 @"image":@"", 103 @"image":@"",
97 @"rowHeight":rowHeight, 104 @"rowHeight":rowHeight,
@@ -484,4 +491,26 @@ @@ -484,4 +491,26 @@
484 [mainView removeFromSuperview]; 491 [mainView removeFromSuperview];
485 }); 492 });
486 } 493 }
  494 +
  495 +/// 获取消息提醒列表
  496 ++ (NSArray *)getMessageNotificationList{
  497 + NSArray *array = @[
  498 + @{
  499 + @"title":@"新闻号",
  500 + @"sys_type":@"sys_news",
  501 + @"state":[[NSUserDefaults standardUserDefaults] objectForKey:@"CNWithNewsReceiveMessageOpt"]?@([[NSUserDefaults standardUserDefaults] stringForKey:@"CNWithNewsReceiveMessageOpt"].integerValue):@(1)
  502 + },
  503 + @{
  504 + @"title":@"视频号",
  505 + @"sys_type":@"sys_video",
  506 + @"state":[[NSUserDefaults standardUserDefaults] objectForKey:@"CNWithVideoReceiveMessageOpt"]?@([[NSUserDefaults standardUserDefaults] stringForKey:@"CNWithVideoReceiveMessageOpt"].integerValue):@(1)
  507 + },
  508 + @{
  509 + @"title":@"直播号",
  510 + @"sys_type":@"sys_live",
  511 + @"state":[[NSUserDefaults standardUserDefaults] objectForKey:@"CNWithLiveReceiveMessageOpt"]?@([[NSUserDefaults standardUserDefaults] stringForKey:@"CNWithLiveReceiveMessageOpt"].integerValue):@(1)
  512 + },
  513 + ];
  514 + return [CNMessageNoteModel mj_objectArrayWithKeyValuesArray:array];
  515 +}
487 @end 516 @end
CNLiveCMineModule/Classes/CNCSubMine/View/CNMessgeNoteCell.h 0 → 100644
  1 +//
  2 +// CNMeaageNoteCell.h
  3 +// CNLiveCMineModule
  4 +//
  5 +// Created by iOS on 2022/12/7.
  6 +//
  7 +
  8 +#import <UIKit/UIKit.h>
  9 +
  10 +NS_ASSUME_NONNULL_BEGIN
  11 +
  12 +@interface CNMessgeNoteCell : UITableViewCell
  13 +@property (nonatomic, copy)void(^changeSwitchBlock)(CNMessageNoteModel *model);
  14 +@property (nonatomic, strong)CNMessageNoteModel *model;
  15 +@end
  16 +
  17 +NS_ASSUME_NONNULL_END
CNLiveCMineModule/Classes/CNCSubMine/View/CNMessgeNoteCell.m 0 → 100644
  1 +//
  2 +// CNMeaageNoteCell.m
  3 +// CNLiveCMineModule
  4 +//
  5 +// Created by iOS on 2022/12/7.
  6 +//
  7 +
  8 +#import "CNMessgeNoteCell.h"
  9 +@interface CNMessgeNoteCell ()
  10 +@property (nonatomic, strong)UIView *bgView;
  11 +@property (nonatomic, strong)UILabel *titleLabel;
  12 +@property (nonatomic, strong)UISwitch *switchBtn;
  13 +
  14 +@end
  15 +
  16 +@implementation CNMessgeNoteCell
  17 +- (instancetype)initWithFrame:(CGRect)frame{
  18 + if (self = [super initWithFrame:frame]) {
  19 + self.contentView.backgroundColor = [UIColor clearColor];
  20 + self.backgroundColor = UIColorClear;
  21 + [self.contentView addSubview:self.bgView];
  22 + [self.bgView addSubview:self.titleLabel];
  23 + [self.bgView addSubview:self.switchBtn];
  24 + [self.bgView mas_makeConstraints:^(MASConstraintMaker *make) {
  25 + make.left.right.bottom.equalTo(self);
  26 + make.top.equalTo(self).offset(10);
  27 + }];
  28 + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) {
  29 +
  30 + }];
  31 + }
  32 + return self;
  33 +}
  34 +- (void)switchValueChanged:(UISwitch *)sender{
  35 + if (self.changeSwitchBlock) {
  36 + self.changeSwitchBlock(self.model);
  37 + }
  38 +}
  39 +#pragma mark - Setting
  40 +- (void)setModel:(CNMessageNoteModel *)model{
  41 + _model = model;
  42 + self.titleLabel.text = model.title;
  43 + [self.switchBtn setOn:model.state];
  44 +}
  45 +#pragma mark - Getting
  46 +- (UIView *)bgView{
  47 + if (!_bgView) {
  48 + _bgView = [[UIView alloc] init];
  49 + _bgView.backgroundColor = UIColorWhite;
  50 + }
  51 + return _bgView;
  52 +}
  53 +- (UILabel *)titleLabel{
  54 + if (!_titleLabel) {
  55 + _titleLabel = [[UILabel alloc] init];
  56 + _titleLabel.textColor = UIColorHex(#282828);
  57 + _titleLabel.font = UIFontMake(16);
  58 + }
  59 + return _titleLabel;
  60 +}
  61 +- (UISwitch *)switchBtn{
  62 + if (!_switchBtn) {
  63 + _switchBtn = [[UISwitch alloc] init];
  64 + [_switchBtn addTarget:self action:@selector(switchValueChanged:) forControlEvents:UIControlEventValueChanged];
  65 + }
  66 + return _switchBtn;
  67 +}
  68 +@end
CNLiveCMineModule/Classes/CNCSubMine/ViewController/CNMessageNotesController.h 0 → 100644
  1 +//
  2 +// CNMessageNotesController.h
  3 +// CNLiveCMineModule
  4 +//
  5 +// Created by iOS on 2022/12/7.
  6 +//
  7 +
  8 +#import <CNLiveBusinessBaseModule/CNLiveBusinessBaseModule.h>
  9 +
  10 +NS_ASSUME_NONNULL_BEGIN
  11 +
  12 +@interface CNMessageNotesController : CNCommonViewController
  13 +
  14 +@end
  15 +
  16 +NS_ASSUME_NONNULL_END
CNLiveCMineModule/Classes/CNCSubMine/ViewController/CNMessageNotesController.m 0 → 100644
  1 +//
  2 +// CNMessageNotesController.m
  3 +// CNLiveCMineModule
  4 +//
  5 +// Created by iOS on 2022/12/7.
  6 +//
  7 +
  8 +#import "CNMessageNotesController.h"
  9 +#import "CNMessgeNoteCell.h"
  10 +#import "CNCSubMinePresent.h"
  11 +
  12 +static NSString const*kCNMessgeNoteCellID = @"CNMessgeNoteCellID";
  13 +@interface CNMessageNotesController ()<UITableViewDelegate, UITableViewDataSource>
  14 +@property (nonatomic, strong)CNLiveNavigationBar *navigationBar;
  15 +@property (nonatomic, strong)UITableView *tableView;
  16 +@property (nonatomic, strong)NSArray *dataSource;
  17 +@end
  18 +
  19 +@implementation CNMessageNotesController
  20 +- (void)dealloc{
  21 + NSLog(@"%s",__func__);
  22 +}
  23 +- (void)viewDidLoad {
  24 + [super viewDidLoad];
  25 + self.view.backgroundColor = UIColorWhite;
  26 + self.dataSource = [CNCSubMinePresent getMessageNotificationList];
  27 + [self.view addSubview:self.navigationBar];
  28 + [self.view addSubview:self.tableView];
  29 + [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) {
  30 + make.left.right.bottom.equalTo(self.view);
  31 + make.top.equalTo(self.navigationBar.mas_bottom);
  32 + }];
  33 +}
  34 +- (BOOL)preferredNavigationBarHidden{
  35 + return YES;
  36 +}
  37 +#pragma mark - UITableViewDelegate
  38 +- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath;
  39 +{
  40 + return 59;
  41 +}
  42 +- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section{
  43 + return 50;
  44 +}
  45 +- (nullable UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section{
  46 + UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(18, 10, kScreenWidth - 36, 40)];
  47 + label.font = UIFontMake(14);
  48 + label.textColor = UIColorHex(#999999);
  49 + label.numberOfLines = 2;
  50 + label.text = @"关闭后你将不会在下拉通知看到该类型的消息,但在网家家内会显示红点。";
  51 + return label;
  52 +}
  53 +#pragma mark - UITableViewDataSource
  54 +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
  55 + return self.dataSource.count;
  56 +}
  57 +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
  58 + CNMessgeNoteCell *cell = [tableView dequeueReusableCellWithIdentifier:kCNMessgeNoteCellID];
  59 + return cell;
  60 +}
  61 +#pragma mark - Getting
  62 +- (CNLiveNavigationBar *)navigationBar{
  63 + if (!_navigationBar) {
  64 + _navigationBar = [CNLiveNavigationBar navigationBar];
  65 + _navigationBar.title.text = @"消息通知";
  66 + weakself
  67 + _navigationBar.onClickLeftButton = ^{
  68 + [weakSelf.navigationController popViewControllerAnimated:YES];
  69 + };
  70 + }
  71 + return _navigationBar;
  72 +}
  73 +- (UITableView *)tableView{
  74 + if (!_tableView) {
  75 + _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain];
  76 + _tableView.backgroundColor = UIColorHex(#F2F2F2);
  77 + _tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
  78 + _tableView.delegate = self;
  79 + _tableView.dataSource = self;
  80 + [_tableView registerClass:[CNMessgeNoteCell class] forCellReuseIdentifier:kCNMessgeNoteCellID];
  81 + }
  82 + return _tableView;
  83 +}
  84 +@end
CNLiveCMineModule/Classes/CNCSubMine/ViewController/CNMineSettingVC.m
@@ -13,6 +13,7 @@ @@ -13,6 +13,7 @@
13 #import "CNPrivacyViewController.h" 13 #import "CNPrivacyViewController.h"
14 #import "CNMineAccountManageController.h" 14 #import "CNMineAccountManageController.h"
15 #import "CNCancellationViewController.h" 15 #import "CNCancellationViewController.h"
  16 +#import "CNMessageNotesController.h"
16 17
17 @interface CNMineSettingVC ()<UITableViewDelegate,UITableViewDataSource> 18 @interface CNMineSettingVC ()<UITableViewDelegate,UITableViewDataSource>
18 @property (nonatomic, strong) UITableView *tableView; 19 @property (nonatomic, strong) UITableView *tableView;
@@ -184,7 +185,12 @@ static NSString *settingListCellId = @&quot;settingListCellId&quot;; @@ -184,7 +185,12 @@ static NSString *settingListCellId = @&quot;settingListCellId&quot;;
184 //隐私 185 //隐私
185 CNPrivacyViewController *vc = [[CNPrivacyViewController alloc] init]; 186 CNPrivacyViewController *vc = [[CNPrivacyViewController alloc] init];
186 [[BaseAppDelegate sharedAppDelegate] pushViewController:vc withBackTitle:@" "]; 187 [[BaseAppDelegate sharedAppDelegate] pushViewController:vc withBackTitle:@" "];
187 - }else if (indexPath.row == 6+i) 188 + }else if (indexPath.row == 6){
  189 + //消息通知
  190 + CNMessageNotesController *vc = [[CNMessageNotesController alloc] init];
  191 + [[BaseAppDelegate sharedAppDelegate] pushViewController:vc];
  192 + }
  193 + else if (indexPath.row == 7+i)
188 //清除缓存 194 //清除缓存
189 { 195 {
190 UIAlertController *actionAlert = [UIAlertController alertControllerWithTitle:@"清除缓存" message:@"您确定要清除本地缓存吗?" preferredStyle:UIAlertControllerStyleAlert]; 196 UIAlertController *actionAlert = [UIAlertController alertControllerWithTitle:@"清除缓存" message:@"您确定要清除本地缓存吗?" preferredStyle:UIAlertControllerStyleAlert];
@@ -212,11 +218,11 @@ static NSString *settingListCellId = @&quot;settingListCellId&quot;; @@ -212,11 +218,11 @@ static NSString *settingListCellId = @&quot;settingListCellId&quot;;
212 [action1 setValue:UIColorHex(23D41E) forKey:@"_titleTextColor"]; 218 [action1 setValue:UIColorHex(23D41E) forKey:@"_titleTextColor"];
213 [action2 setValue:UIColorHex(23D41E) forKey:@"_titleTextColor"]; 219 [action2 setValue:UIColorHex(23D41E) forKey:@"_titleTextColor"];
214 [self presentViewController:actionAlert animated:YES completion:nil]; 220 [self presentViewController:actionAlert animated:YES completion:nil];
215 - }else if (indexPath.row == 7+ i){ 221 + }else if (indexPath.row == 8+ i){
216 //关于我们 222 //关于我们
217 CNMineAccountManageController *aboutVC = [[CNMineAccountManageController alloc] initWithType:SettingTypeAbout]; 223 CNMineAccountManageController *aboutVC = [[CNMineAccountManageController alloc] initWithType:SettingTypeAbout];
218 [[BaseAppDelegate sharedAppDelegate] pushViewController:aboutVC withBackTitle:@" "]; 224 [[BaseAppDelegate sharedAppDelegate] pushViewController:aboutVC withBackTitle:@" "];
219 - }else if (indexPath.row == 8+ i){ 225 + }else if (indexPath.row == 9+ i){
220 //注销账号 226 //注销账号
221 CNCancellationViewController *vc = [[CNCancellationViewController alloc] init]; 227 CNCancellationViewController *vc = [[CNCancellationViewController alloc] init];
222 [[BaseAppDelegate sharedAppDelegate] pushViewController:vc withBackTitle:@" "]; 228 [[BaseAppDelegate sharedAppDelegate] pushViewController:vc withBackTitle:@" "];