Commit 648692f494ae956a6f98c9255aead97e540a3080
1 parent
0661acba
no message
Showing
18 changed files
with
511 additions
and
105 deletions
CNLiveSettingModule/Classes/Controller/CNLiveSettingController.m
| ... | ... | @@ -145,6 +145,8 @@ static const NSInteger timeValue = 1.5; |
| 145 | 145 | [super viewWillAppear:animated]; |
| 146 | 146 | self.navigationController.navigationBarHidden = YES; |
| 147 | 147 | [self.tableView reloadData]; |
| 148 | + self.logout.titleLabel.font = UIFontBoldCNMake(17.0); | |
| 149 | + | |
| 148 | 150 | } |
| 149 | 151 | |
| 150 | 152 | - (void)viewDidLoad { | ... | ... |
CNLiveSettingModule/Classes/Model/CNLiveSettingRequest.h
0 → 100644
| 1 | +// | |
| 2 | +// CNLiveSettingRequest.h | |
| 3 | +// CNLiveSettingModule | |
| 4 | +// | |
| 5 | +// Created by 153993236@qq.com on 11/12/2019. | |
| 6 | +// Copyright © 2019 153993236@qq.com. All rights reserved. | |
| 7 | +// | |
| 8 | + | |
| 9 | +#import <Foundation/Foundation.h> | |
| 10 | + | |
| 11 | +NS_ASSUME_NONNULL_BEGIN | |
| 12 | + | |
| 13 | +@interface CNLiveSettingRequest : NSObject | |
| 14 | + | |
| 15 | + | |
| 16 | +@end | |
| 17 | + | |
| 18 | +NS_ASSUME_NONNULL_END | ... | ... |
CNLiveSettingModule/Classes/Model/CNLiveSettingRequest.m
0 → 100644
CNLiveSettingModule/Classes/Model/CNLiveUserDefaultsModel.h
0 → 100644
| 1 | +// | |
| 2 | +// CNLiveUserDefaultsModel.h | |
| 3 | +// CNLiveSettingModule | |
| 4 | +// | |
| 5 | +// Created by 153993236@qq.com on 11/12/2019. | |
| 6 | +// Copyright © 2019 153993236@qq.com. All rights reserved. | |
| 7 | +// | |
| 8 | + | |
| 9 | +#import "NSUserDefaultsModel.h" | |
| 10 | + | |
| 11 | +#define UserDefaultsModel [CNLiveUserDefaultsModel userDefaultsModel] | |
| 12 | + | |
| 13 | +NS_ASSUME_NONNULL_BEGIN | |
| 14 | + | |
| 15 | +@interface CNLiveUserDefaultsModel : NSUserDefaultsModel | |
| 16 | + | |
| 17 | +//@property (nonatomic, copy) NSString *name; | |
| 18 | +//@property (nonatomic, assign) NSInteger gender; | |
| 19 | +//@property (nonatomic, assign) long age; | |
| 20 | +//@property (nonatomic, assign) float floatNumber; | |
| 21 | +//@property (nonatomic, assign) double doubleNumber; | |
| 22 | + | |
| 23 | + | |
| 24 | +// 允许陌生人查看生活圈 | |
| 25 | +@property (nonatomic, copy) NSString *findStrangerSwitch; | |
| 26 | + | |
| 27 | +// 金币音量开关 | |
| 28 | +@property (nonatomic, assign) BOOL goldCoinSound; | |
| 29 | + | |
| 30 | +@end | |
| 31 | + | |
| 32 | +NS_ASSUME_NONNULL_END | |
| 33 | + | ... | ... |
CNLiveSettingModule/Classes/Model/CNLiveUserDefaultsModel.m
0 → 100644
| 1 | +// | |
| 2 | +// CNLiveUserDefaultsModel.m | |
| 3 | +// CNLiveSettingModule | |
| 4 | +// | |
| 5 | +// Created by 153993236@qq.com on 11/12/2019. | |
| 6 | +// Copyright © 2019 153993236@qq.com. All rights reserved. | |
| 7 | +// | |
| 8 | + | |
| 9 | +#import "CNLiveUserDefaultsModel.h" | |
| 10 | + | |
| 11 | +@implementation CNLiveUserDefaultsModel | |
| 12 | + | |
| 13 | +//@dynamic name; | |
| 14 | +//@dynamic gender; | |
| 15 | +//@dynamic age; | |
| 16 | +//@dynamic floatNumber; | |
| 17 | +//@dynamic doubleNumber; | |
| 18 | + | |
| 19 | +@dynamic goldCoinSound; | |
| 20 | +@dynamic findStrangerSwitch; | |
| 21 | + | |
| 22 | +#pragma mark - Init | |
| 23 | + | |
| 24 | +- (NSDictionary *)setupDefaultValues { | |
| 25 | + return @{ | |
| 26 | +// @"name": @"lc", | |
| 27 | +// @"gender": @1, | |
| 28 | +// @"age": @20, | |
| 29 | +// @"floatNumber": @11.1, | |
| 30 | +// @"doubleNumber": @22.2, | |
| 31 | + @"goldCoinSound": @YES, | |
| 32 | + @"findStrangerSwitch": @"access" | |
| 33 | + }; | |
| 34 | +} | |
| 35 | + | |
| 36 | +@end | ... | ... |
CNLiveSettingModule/Classes/Model/NSUserDefaultsModel.h
0 → 100644
| 1 | +// | |
| 2 | +// NSUserDefaultsModel.h | |
| 3 | +// CNLiveSettingModule | |
| 4 | +// | |
| 5 | +// Created by 153993236@qq.com on 11/12/2019. | |
| 6 | +// Copyright © 2019 153993236@qq.com. All rights reserved. | |
| 7 | +// | |
| 8 | + | |
| 9 | +#import <Foundation/Foundation.h> | |
| 10 | + | |
| 11 | +@interface NSUserDefaultsModel : NSObject | |
| 12 | + | |
| 13 | +// Value types | |
| 14 | +typedef NS_ENUM(NSInteger, NSUserDefaultsValueType) { | |
| 15 | + NSUserDefaultsValueTypeInteger, // NSInteger | |
| 16 | + NSUserDefaultsValueTypeLong, // Include:long,long long,short and unsigned | |
| 17 | + NSUserDefaultsValueTypeFloat, | |
| 18 | + NSUserDefaultsValueTypeDouble, | |
| 19 | + NSUserDefaultsValueTypeBool, | |
| 20 | + NSUserDefaultsValueTypeObject, | |
| 21 | + NSUserDefaultsValueTypeUnknown | |
| 22 | +}; | |
| 23 | + | |
| 24 | +// Init | |
| 25 | ++ (instancetype)userDefaultsModel; | |
| 26 | + | |
| 27 | +// Set default values | |
| 28 | +/** | |
| 29 | + * Override this method,you can setup default values | |
| 30 | + * Description: If the object has two properties such as 'name' and 'gender',you should return @{@"name": @"defaultName", @"gender": @defaultGender} | |
| 31 | + */ | |
| 32 | +- (NSDictionary *)setupDefaultValues; | |
| 33 | + | |
| 34 | +@end | ... | ... |
CNLiveSettingModule/Classes/Model/NSUserDefaultsModel.m
0 → 100644
| 1 | +// | |
| 2 | +// NSUserDefaultsModel.m | |
| 3 | +// CNLiveSettingModule | |
| 4 | +// | |
| 5 | +// Created by 153993236@qq.com on 11/12/2019. | |
| 6 | +// Copyright © 2019 153993236@qq.com. All rights reserved. | |
| 7 | +// | |
| 8 | + | |
| 9 | +#import "NSUserDefaultsModel.h" | |
| 10 | +#import <objc/runtime.h> | |
| 11 | + | |
| 12 | +@interface NSUserDefaultsModel () | |
| 13 | +@property (nonatomic, strong) NSMutableDictionary *properties; | |
| 14 | + | |
| 15 | +@end | |
| 16 | + | |
| 17 | +@implementation NSUserDefaultsModel | |
| 18 | + | |
| 19 | +#pragma mark - Init | |
| 20 | ++ (instancetype)userDefaultsModel { | |
| 21 | + static id model = nil; | |
| 22 | + static dispatch_once_t onceToken; | |
| 23 | + dispatch_once(&onceToken, ^{ | |
| 24 | + model = [[[self class] alloc] init]; | |
| 25 | + }); | |
| 26 | + | |
| 27 | + return model; | |
| 28 | +} | |
| 29 | + | |
| 30 | +- (instancetype)init { | |
| 31 | + if (self = [super init]) { | |
| 32 | + if ([self respondsToSelector:@selector(setupDefaultValues)]) { | |
| 33 | + NSDictionary *defaults = [self setupDefaultValues]; | |
| 34 | + if (defaults) { | |
| 35 | + [[NSUserDefaults standardUserDefaults] registerDefaults:defaults]; | |
| 36 | + [self exchangeAccessMethods]; | |
| 37 | + } | |
| 38 | + } | |
| 39 | + } | |
| 40 | + | |
| 41 | + return self; | |
| 42 | +} | |
| 43 | + | |
| 44 | +- (NSDictionary *)setupDefaultValues { | |
| 45 | + return nil; | |
| 46 | +} | |
| 47 | + | |
| 48 | +#pragma mark - Processing Data | |
| 49 | +- (void)exchangeAccessMethods { | |
| 50 | + unsigned int count = 0; | |
| 51 | + | |
| 52 | + objc_property_t *propertyList = class_copyPropertyList([self class], &count); | |
| 53 | + for (int index = 0; index < count; index++) { | |
| 54 | + objc_property_t property = propertyList[index]; | |
| 55 | + const char *propertyName = property_getName(property); | |
| 56 | + const char *propertyAttributes = property_getAttributes(property); | |
| 57 | + | |
| 58 | + NSString *getterKey = [NSString stringWithFormat:@"%s", propertyName]; | |
| 59 | + NSString *setterKey = [NSString stringWithFormat:@"set%@%@:", [[getterKey substringToIndex:1] uppercaseString], [getterKey substringFromIndex:1]]; | |
| 60 | + if (getterKey && getterKey.length > 0) { | |
| 61 | + SEL getterSelector = NSSelectorFromString(getterKey); | |
| 62 | + SEL setterSelector = NSSelectorFromString(setterKey); | |
| 63 | + self.properties[getterKey] = getterKey; | |
| 64 | + self.properties[setterKey] = getterKey; | |
| 65 | + | |
| 66 | + IMP getterImp = NULL; | |
| 67 | + IMP setterImp = NULL; | |
| 68 | + // Data type | |
| 69 | + char type = propertyAttributes[1]; | |
| 70 | + if (type == '@') { | |
| 71 | + getterImp = (IMP)getObjectValue; | |
| 72 | + setterImp = (IMP)setObjectValue; | |
| 73 | + }else if (type == 'B') { | |
| 74 | + getterImp = (IMP)getBoolValue; | |
| 75 | + setterImp = (IMP)setBoolValue; | |
| 76 | + } else if (type == 'i') { | |
| 77 | + getterImp = (IMP)getIntegerValue; | |
| 78 | + setterImp = (IMP)setIntegerValue; | |
| 79 | + } else if (type == 'd') { | |
| 80 | + getterImp = (IMP)getDoubleValue; | |
| 81 | + setterImp = (IMP)setDoubleValue; | |
| 82 | + } else if (type == 'f') { | |
| 83 | + getterImp = (IMP)getFloatValue; | |
| 84 | + setterImp = (IMP)setFloatValue; | |
| 85 | + } else if (type == 's' || type == 'l' || type == 'q' || type == 'S' || type == 'I' || type == 'L' || type == 'Q') { | |
| 86 | + getterImp = (IMP)getLongValue; | |
| 87 | + setterImp = (IMP)setLongValue; | |
| 88 | + } else { | |
| 89 | + NSLog(@"Warning:Unsupported type ,property = '%@'", getterKey); | |
| 90 | + break; | |
| 91 | + } | |
| 92 | + | |
| 93 | + char getterYypes[3] = "v@:"; | |
| 94 | + getterYypes[0] = type; | |
| 95 | + class_addMethod([self class], getterSelector, getterImp, getterYypes); | |
| 96 | + | |
| 97 | + char setterTypes[4] = "v@:"; | |
| 98 | + setterTypes[3] = type; | |
| 99 | + class_addMethod([self class], setterSelector, setterImp, setterTypes); | |
| 100 | + } | |
| 101 | + } | |
| 102 | + free(propertyList); // release | |
| 103 | +} | |
| 104 | + | |
| 105 | +#pragma mark - Override Methods | |
| 106 | +- (NSMutableDictionary *)properties { | |
| 107 | + if (!_properties) { | |
| 108 | + _properties = [NSMutableDictionary dictionary]; | |
| 109 | + } | |
| 110 | + return _properties; | |
| 111 | +} | |
| 112 | + | |
| 113 | +#pragma mark - Private Methods | |
| 114 | +/** | |
| 115 | + * Setter And Getter Methods | |
| 116 | + */ | |
| 117 | + | |
| 118 | +// Bbject | |
| 119 | +static id getObjectValue(NSUserDefaultsModel *model, SEL sel) { | |
| 120 | + NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults]; | |
| 121 | + return [userDefaults objectForKey:model.properties[NSStringFromSelector(sel)]]; | |
| 122 | +} | |
| 123 | + | |
| 124 | +static void setObjectValue(NSUserDefaultsModel *model, SEL sel, id value) { | |
| 125 | + NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults]; | |
| 126 | + if (value) { | |
| 127 | + [userDefaults setObject:value forKey:model.properties[NSStringFromSelector(sel)]]; | |
| 128 | + } else { | |
| 129 | + [userDefaults removeObjectForKey:model.properties[NSStringFromSelector(sel)]]; | |
| 130 | + } | |
| 131 | + [userDefaults synchronize]; | |
| 132 | +} | |
| 133 | + | |
| 134 | +// Bool | |
| 135 | +static BOOL getBoolValue(NSUserDefaultsModel *model, SEL sel) { | |
| 136 | + NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults]; | |
| 137 | + return [userDefaults boolForKey:model.properties[NSStringFromSelector(sel)]]; | |
| 138 | +} | |
| 139 | + | |
| 140 | +static void setBoolValue(NSUserDefaultsModel *model, SEL sel, BOOL value) { | |
| 141 | + NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults]; | |
| 142 | + [userDefaults setBool:value forKey:model.properties[NSStringFromSelector(sel)]]; | |
| 143 | + [userDefaults synchronize]; | |
| 144 | +} | |
| 145 | + | |
| 146 | +// Integer | |
| 147 | +static NSInteger getIntegerValue(NSUserDefaultsModel *model, SEL sel) { | |
| 148 | + NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults]; | |
| 149 | + return [userDefaults integerForKey:model.properties[NSStringFromSelector(sel)]]; | |
| 150 | +} | |
| 151 | + | |
| 152 | +static void setIntegerValue(NSUserDefaultsModel *model, SEL sel, NSInteger value) { | |
| 153 | + NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults]; | |
| 154 | + [userDefaults setInteger:value forKey:model.properties[NSStringFromSelector(sel)]]; | |
| 155 | + [userDefaults synchronize]; | |
| 156 | +} | |
| 157 | + | |
| 158 | +// Double | |
| 159 | +static double getDoubleValue(NSUserDefaultsModel *model, SEL sel) { | |
| 160 | + NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults]; | |
| 161 | + return [userDefaults doubleForKey:model.properties[NSStringFromSelector(sel)]]; | |
| 162 | +} | |
| 163 | + | |
| 164 | +static void setDoubleValue(NSUserDefaultsModel *model, SEL sel, double value) { | |
| 165 | + NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults]; | |
| 166 | + [userDefaults setDouble:value forKey:model.properties[NSStringFromSelector(sel)]]; | |
| 167 | + [userDefaults synchronize]; | |
| 168 | +} | |
| 169 | + | |
| 170 | +// Float | |
| 171 | +static float getFloatValue(NSUserDefaultsModel *model, SEL sel) { | |
| 172 | + NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults]; | |
| 173 | + return [userDefaults doubleForKey:model.properties[NSStringFromSelector(sel)]]; | |
| 174 | +} | |
| 175 | + | |
| 176 | +static void setFloatValue(NSUserDefaultsModel *model, SEL sel, float value) { | |
| 177 | + NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults]; | |
| 178 | + [userDefaults setFloat:value forKey:model.properties[NSStringFromSelector(sel)]]; | |
| 179 | + [userDefaults synchronize]; | |
| 180 | +} | |
| 181 | + | |
| 182 | +// Long | |
| 183 | +static long long getLongValue(NSUserDefaultsModel *model, SEL sel) { | |
| 184 | + NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults]; | |
| 185 | + return [[userDefaults objectForKey:model.properties[NSStringFromSelector(sel)]] longLongValue]; | |
| 186 | +} | |
| 187 | + | |
| 188 | +static void setLongValue(NSUserDefaultsModel *model, SEL sel, long long value) { | |
| 189 | + NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults]; | |
| 190 | + [userDefaults setObject:@(value) forKey:model.properties[NSStringFromSelector(sel)]]; | |
| 191 | + [userDefaults synchronize]; | |
| 192 | +} | |
| 193 | + | |
| 194 | +@end | ... | ... |
CNLiveSettingModule/Classes/Privacy/CNLivePrivacyTableViewCell.h renamed to CNLiveSettingModule/Classes/Privacy/CNLivePrivacyCell.h
| 1 | 1 | // |
| 2 | -// CNPrivacyTableViewCell.h | |
| 2 | +// CNPrivacyCell.h | |
| 3 | 3 | // CNLiveSettingModule |
| 4 | 4 | // |
| 5 | 5 | // Created by CNLive-zxw on 2019/4/23. |
| ... | ... | @@ -9,10 +9,10 @@ |
| 9 | 9 | #import <UIKit/UIKit.h> |
| 10 | 10 | |
| 11 | 11 | NS_ASSUME_NONNULL_BEGIN |
| 12 | -#define kCNLivePrivacyTableViewCell @"CNLivePrivacyTableViewCell" | |
| 12 | +#define kCNLivePrivacyCell @"CNLivePrivacyCell" | |
| 13 | 13 | @class CNLivePrivacyModel; |
| 14 | 14 | |
| 15 | -@interface CNLivePrivacyTableViewCell : UITableViewCell | |
| 15 | +@interface CNLivePrivacyCell : UITableViewCell | |
| 16 | 16 | @property (nonatomic, strong) CNLivePrivacyModel *model; |
| 17 | 17 | |
| 18 | 18 | @end | ... | ... |
CNLiveSettingModule/Classes/Privacy/CNLivePrivacyTableViewCell.m renamed to CNLiveSettingModule/Classes/Privacy/CNLivePrivacyCell.m
| 1 | 1 | // |
| 2 | -// CNLivePrivacyTableViewCell.m | |
| 2 | +// CNLivePrivacyCell.m | |
| 3 | 3 | // CNLiveSettingModule |
| 4 | 4 | // |
| 5 | 5 | // Created by CNLive-zxw on 2019/4/23. |
| 6 | 6 | // Copyright © 2019 cnlive. All rights reserved. |
| 7 | 7 | // |
| 8 | 8 | |
| 9 | -#import "CNLivePrivacyTableViewCell.h" | |
| 9 | +#import "CNLivePrivacyCell.h" | |
| 10 | 10 | #import <SDWebImage/SDWebImage.h> |
| 11 | 11 | #import "QMUIKit.h" |
| 12 | 12 | #import <Masonry/Masonry.h> |
| ... | ... | @@ -18,15 +18,17 @@ |
| 18 | 18 | #import "CNLiveBaseKit.h" |
| 19 | 19 | |
| 20 | 20 | #import "CNLivePrivacyModel.h" |
| 21 | +#import "CNLiveUserDefaultsModel.h" | |
| 22 | +#import "CNLivePrivacyRequest.h" | |
| 21 | 23 | |
| 22 | -@interface CNLivePrivacyTableViewCell () | |
| 24 | +@interface CNLivePrivacyCell () | |
| 23 | 25 | @property (nonatomic, strong) UILabel *titleLabel; |
| 24 | -@property (nonatomic, strong) UISwitch *notifiSwitch; | |
| 26 | +@property (nonatomic, strong) UISwitch *allowSwitch; | |
| 25 | 27 | @property (nonatomic, strong) UIImageView *arrowImage; |
| 26 | 28 | |
| 27 | 29 | @end |
| 28 | 30 | |
| 29 | -@implementation CNLivePrivacyTableViewCell | |
| 31 | +@implementation CNLivePrivacyCell | |
| 30 | 32 | static const NSInteger margin = 12; |
| 31 | 33 | |
| 32 | 34 | #pragma mark - Init |
| ... | ... | @@ -41,7 +43,7 @@ static const NSInteger margin = 12; |
| 41 | 43 | - (void)initSubView { |
| 42 | 44 | [self.contentView addSubview:self.titleLabel]; |
| 43 | 45 | [self.contentView addSubview:self.arrowImage]; |
| 44 | - [self.contentView addSubview:self.notifiSwitch]; | |
| 46 | + [self.contentView addSubview:self.allowSwitch]; | |
| 45 | 47 | |
| 46 | 48 | } |
| 47 | 49 | |
| ... | ... | @@ -55,7 +57,7 @@ static const NSInteger margin = 12; |
| 55 | 57 | make.centerY.mas_equalTo(self.contentView); |
| 56 | 58 | make.right.equalTo(self.contentView).offset(-margin); |
| 57 | 59 | }]; |
| 58 | - [self.notifiSwitch mas_makeConstraints:^(MASConstraintMaker *make) { | |
| 60 | + [self.allowSwitch mas_makeConstraints:^(MASConstraintMaker *make) { | |
| 59 | 61 | // UISwithch的大小无效.默认大小 51.0f 31.0f) |
| 60 | 62 | make.centerY.mas_equalTo(self.contentView); |
| 61 | 63 | make.right.equalTo(self.contentView).offset(-margin); |
| ... | ... | @@ -73,48 +75,34 @@ static const NSInteger margin = 12; |
| 73 | 75 | - (void)setModel:(CNLivePrivacyModel *)model { |
| 74 | 76 | _model = model; |
| 75 | 77 | _titleLabel.text = model.title; |
| 76 | - if (model.cellType == CNLivePrivacyCellTypeList) { //0 隐私的列表 | |
| 78 | + if (model.cellType == CNLivePrivacyCellTypeDefault) { //0 隐私的列表 | |
| 77 | 79 | _arrowImage.hidden = NO; |
| 78 | - _notifiSwitch.hidden = YES; | |
| 80 | + _allowSwitch.hidden = YES; | |
| 79 | 81 | |
| 80 | 82 | } |
| 81 | 83 | if (model.cellType == CNLivePrivacyCellTypeSee) { //1 是否允许陌生人看生活圈 |
| 82 | 84 | _arrowImage.hidden = YES; |
| 83 | - _notifiSwitch.hidden = NO; | |
| 84 | - | |
| 85 | -// _notifiSwitch.enabled = [[KSYReachability reachabilityForInternetConnection] currentReachabilityStatus];//交互性 | |
| 86 | - [_notifiSwitch setOn:[model.status isEqualToString:@"access"]]; | |
| 87 | - | |
| 85 | + _allowSwitch.hidden = NO; | |
| 86 | + [_allowSwitch setOn:[model.status isEqualToString:@"access"]]; | |
| 88 | 87 | } |
| 89 | 88 | |
| 90 | 89 | } |
| 91 | 90 | |
| 92 | 91 | #pragma mark - Action |
| 93 | -- (void)switchAction:(UISwitch *)sender { | |
| 92 | +- (void)allowDidClicked:(UISwitch *)sender { | |
| 94 | 93 | if (_model.cellType == CNLivePrivacyCellTypeSee) { //1 是否允许陌生人看生活圈 |
| 95 | 94 | sender.userInteractionEnabled = NO; |
| 96 | - if (![[[NSUserDefaults standardUserDefaults] objectForKey:@"CNLiveConnectSuccNotification"] boolValue]) { | |
| 97 | - [sender setOn:[_model.status isEqualToString:@"access"]]; | |
| 98 | - sender.userInteractionEnabled = YES; | |
| 99 | - return; | |
| 100 | - }; | |
| 101 | 95 | __weak typeof(self) weakSelf = self; |
| 102 | - NSDictionary *params = @{@"appId":AppId, | |
| 103 | - @"type":[_model.status isEqualToString:@"access"]?@"reject":@"access", | |
| 104 | - @"sid":CNUserShareModel.uid}; | |
| 105 | - [CNLiveNetworking setAllowRequestDefaultArgument:YES]; | |
| 106 | - [CNLiveNetworking requestNetworkWithMethod:CNLiveRequestMethodPOST URLString:CNSwitchAllowStrangerUrl Param:params CacheType:CNLiveNetworkCacheTypeNetworkOnly CompletionBlock:^(NSURLSessionTask *requestTask, id responseObject, NSError *error) { | |
| 107 | - if ([responseObject isKindOfClass:[NSDictionary class]] && [responseObject[@"errorCode"] isEqualToString:@"0"]) { | |
| 108 | - weakSelf.model.status = [weakSelf.model.status isEqualToString:@"access"]?@"reject":@"access"; | |
| 109 | - [[NSUserDefaults standardUserDefaults] setValue:weakSelf.model.status forKey:@"findStrangerSwitch"]; | |
| 110 | - | |
| 96 | + [CNLivePrivacyRequest changeAllowStrangersToSeeState:[UserDefaultsModel.findStrangerSwitch isEqualToString:@"access"]?@"reject":@"access" block:^(BOOL isSuccess) { | |
| 97 | + if(isSuccess){ | |
| 98 | + UserDefaultsModel.findStrangerSwitch = [UserDefaultsModel.findStrangerSwitch isEqualToString:@"access"]?@"reject":@"access"; | |
| 111 | 99 | }else{ |
| 112 | 100 | [sender setOn:[weakSelf.model.status isEqualToString:@"access"]]; |
| 113 | 101 | |
| 114 | 102 | } |
| 115 | 103 | sender.userInteractionEnabled = YES; |
| 116 | - | |
| 117 | 104 | }]; |
| 105 | + | |
| 118 | 106 | } |
| 119 | 107 | |
| 120 | 108 | } |
| ... | ... | @@ -142,18 +130,18 @@ static const NSInteger margin = 12; |
| 142 | 130 | - (UIImageView *)arrowImage { |
| 143 | 131 | if (!_arrowImage) { |
| 144 | 132 | _arrowImage = [[UIImageView alloc] init]; |
| 145 | - UIImage *xw_image = [self getImageWithImageName:@"mine_info_front" bundleName:@"CNLiveSettingModule" targetClass:[CNLivePrivacyTableViewCell class]]; | |
| 133 | + UIImage *xw_image = [self getImageWithImageName:@"mine_info_front" bundleName:@"CNLiveSettingModule" targetClass:[self class]]; | |
| 146 | 134 | _arrowImage.image = xw_image; |
| 147 | 135 | } |
| 148 | 136 | return _arrowImage; |
| 149 | 137 | } |
| 150 | 138 | |
| 151 | -- (UISwitch *)notifiSwitch { | |
| 152 | - if (!_notifiSwitch) { | |
| 153 | - _notifiSwitch = [[UISwitch alloc] init]; | |
| 154 | - [_notifiSwitch addTarget:self action:@selector(switchAction:) forControlEvents:UIControlEventValueChanged]; | |
| 139 | +- (UISwitch *)allowSwitch { | |
| 140 | + if (!_allowSwitch) { | |
| 141 | + _allowSwitch = [[UISwitch alloc] init]; | |
| 142 | + [_allowSwitch addTarget:self action:@selector(allowDidClicked:) forControlEvents:UIControlEventValueChanged]; | |
| 155 | 143 | } |
| 156 | - return _notifiSwitch; | |
| 144 | + return _allowSwitch; | |
| 157 | 145 | } |
| 158 | 146 | |
| 159 | 147 | @end | ... | ... |
CNLiveSettingModule/Classes/Privacy/CNLivePrivacyContactTableViewCell.h renamed to CNLiveSettingModule/Classes/Privacy/CNLivePrivacyContactCell.h
| 1 | 1 | // |
| 2 | -// CNLivePrivacyContactTableViewCell.h | |
| 2 | +// CNLivePrivacyContactCell.h | |
| 3 | 3 | // CNLiveSettingModule |
| 4 | 4 | // |
| 5 | 5 | // Created by CNLive-zxw on 2019/4/24. |
| ... | ... | @@ -16,7 +16,7 @@ NS_ASSUME_NONNULL_BEGIN |
| 16 | 16 | |
| 17 | 17 | @end |
| 18 | 18 | |
| 19 | -@interface CNLivePrivacyContactTableViewCell : UITableViewCell | |
| 19 | +@interface CNLivePrivacyContactCell : UITableViewCell | |
| 20 | 20 | @property (nonatomic, strong) UIButton *selectBtn; |
| 21 | 21 | @property (nonatomic, strong) IMAUser *user; |
| 22 | 22 | @property (nonatomic, assign) id<CNLivePrivacyContactCellDelegate> delegate; | ... | ... |
CNLiveSettingModule/Classes/Privacy/CNLivePrivacyContactTableViewCell.m renamed to CNLiveSettingModule/Classes/Privacy/CNLivePrivacyContactCell.m
| 1 | 1 | // |
| 2 | -// CNLivePrivacyContactTableViewCell.m | |
| 2 | +// CNLivePrivacyContactCell.m | |
| 3 | 3 | // CNLiveSettingModule |
| 4 | 4 | // |
| 5 | 5 | // Created by CNLive-zxw on 2019/4/24. |
| 6 | 6 | // Copyright © 2019 cnlive. All rights reserved. |
| 7 | 7 | // |
| 8 | 8 | |
| 9 | -#import "CNLivePrivacyContactTableViewCell.h" | |
| 9 | +#import "CNLivePrivacyContactCell.h" | |
| 10 | 10 | #import <Masonry/Masonry.h> |
| 11 | 11 | #import "QMUIKit.h" |
| 12 | 12 | #import "CNLiveCategory.h" |
| 13 | 13 | |
| 14 | -@interface CNLivePrivacyContactTableViewCell () | |
| 14 | +@interface CNLivePrivacyContactCell () | |
| 15 | 15 | @property (nonatomic, strong) UIImageView *iconImage; |
| 16 | 16 | @property (nonatomic, strong) UILabel *nickLabel; |
| 17 | 17 | |
| 18 | 18 | @end |
| 19 | 19 | |
| 20 | -@implementation CNLivePrivacyContactTableViewCell | |
| 20 | +@implementation CNLivePrivacyContactCell | |
| 21 | 21 | #pragma mark - Init |
| 22 | 22 | + (instancetype)cellWithTableView:(UITableView *)tableView { |
| 23 | - static NSString *indentify = @"CNLivePrivacyContactTableViewCell"; | |
| 24 | - CNLivePrivacyContactTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:indentify]; | |
| 23 | + static NSString *indentify = @"CNLivePrivacyContactCell"; | |
| 24 | + CNLivePrivacyContactCell *cell = [tableView dequeueReusableCellWithIdentifier:indentify]; | |
| 25 | 25 | if (!cell) { |
| 26 | - cell = [[CNLivePrivacyContactTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:indentify]; | |
| 26 | + cell = [[CNLivePrivacyContactCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:indentify]; | |
| 27 | 27 | } |
| 28 | 28 | return cell; |
| 29 | 29 | |
| ... | ... | @@ -194,7 +194,7 @@ |
| 194 | 194 | |
| 195 | 195 | - (UIImageView *)moreImage { |
| 196 | 196 | if (!_moreImage) { |
| 197 | - UIImage *xw_image = [self getImageWithImageName:@"mine_info_front" bundleName:@"CNLiveSettingModule" targetClass:[CNLivePrivacyContactTableViewCell class]]; | |
| 197 | + UIImage *xw_image = [self getImageWithImageName:@"mine_info_front" bundleName:@"CNLiveSettingModule" targetClass:[CNLivePrivacyContactCell class]]; | |
| 198 | 198 | _moreImage = [[UIImageView alloc] initWithImage:xw_image]; |
| 199 | 199 | } |
| 200 | 200 | return _moreImage; | ... | ... |
CNLiveSettingModule/Classes/Privacy/CNLivePrivacyController.m
| ... | ... | @@ -17,17 +17,20 @@ |
| 17 | 17 | #import "CNUserInfoManager.h" |
| 18 | 18 | |
| 19 | 19 | #import "CNLiveSettingNavigationBar.h" |
| 20 | -#import "CNLivePrivacyTableViewCell.h" | |
| 20 | +#import "CNLivePrivacyCell.h" | |
| 21 | 21 | #import "CNLivePrivacyHeaderView.h" |
| 22 | 22 | #import "CNLivePrivacyModel.h" |
| 23 | 23 | #import "CNLiveNotSeeController.h"//不让看/不看 |
| 24 | 24 | //#import "CNLiveBlackListController.h"//通讯录黑名单 |
| 25 | +#import "CNLiveUserDefaultsModel.h" | |
| 26 | +#import "CNLivePrivacyRequest.h" | |
| 25 | 27 | |
| 26 | 28 | @interface CNLivePrivacyController ()<UITableViewDelegate,UITableViewDataSource,CNLiveSettingNavigationBarDelegate> |
| 27 | 29 | @property (nonatomic, strong) CNLiveSettingNavigationBar *navigationBar; |
| 28 | 30 | @property (nonatomic, strong) UITableView *tableView; |
| 29 | -@property (nonatomic, strong) NSMutableArray <CNLivePrivacyModel*>*data; | |
| 31 | + | |
| 30 | 32 | @property (nonatomic, strong) CNLivePrivacyModel *model; |
| 33 | +@property (nonatomic, strong) NSMutableArray <CNLivePrivacyModel*>*data; | |
| 31 | 34 | |
| 32 | 35 | @end |
| 33 | 36 | |
| ... | ... | @@ -70,26 +73,14 @@ |
| 70 | 73 | |
| 71 | 74 | //允许陌生人查看生活圈 |
| 72 | 75 | - (void)getData { |
| 73 | - NSDictionary *params = @{@"appId":AppId, | |
| 74 | - @"sid":CNUserShareModel.uid}; | |
| 75 | - [CNLiveNetworking setAllowRequestDefaultArgument:YES]; | |
| 76 | - [CNLiveNetworking requestNetworkWithMethod:CNLiveRequestMethodPOST URLString:CNIsAllowFindStrangerSwitchUrl Param:params CacheType:CNLiveNetworkCacheTypeNetworkOnly CompletionBlock:^(NSURLSessionTask *requestTask, id responseObject, NSError *error) { | |
| 77 | - if ([responseObject isKindOfClass:[NSDictionary class]] && [responseObject[@"errorCode"] isEqualToString:@"0"]) { | |
| 78 | - if(responseObject[@"data"] && [responseObject[@"data"] isKindOfClass:[NSDictionary class]]){ | |
| 79 | - NSMutableArray <CNLivePrivacyModel *>*arr = [CNLivePrivacyModel mj_objectArrayWithKeyValuesArray:responseObject[@"data"][@"findStrangerSwitch"]]; | |
| 80 | - CNLivePrivacyModel *model = [arr firstObject]; | |
| 81 | - [[NSUserDefaults standardUserDefaults] setValue:model.status forKey:@"findStrangerSwitch"]; | |
| 82 | - for (CNLivePrivacyModel *model in self.data) { | |
| 83 | - if([model.title isEqualToString:@"允许陌生人查看生活圈"]){ | |
| 84 | - model.status = model.status; | |
| 85 | - } | |
| 86 | - } | |
| 76 | + [CNLivePrivacyRequest getAllowStrangersToSeeState:^(NSString * _Nonnull status) { | |
| 77 | + for (CNLivePrivacyModel *model in self.data) { | |
| 78 | + if([model.title isEqualToString:@"允许陌生人查看生活圈"]){ | |
| 79 | + model.status = status; | |
| 87 | 80 | } |
| 88 | 81 | } |
| 89 | 82 | [self.tableView reloadData]; |
| 90 | - | |
| 91 | 83 | }]; |
| 92 | - | |
| 93 | 84 | } |
| 94 | 85 | |
| 95 | 86 | - (void)viewWillAppear:(BOOL)animated { |
| ... | ... | @@ -97,31 +88,30 @@ |
| 97 | 88 | [self.tableView reloadData]; |
| 98 | 89 | |
| 99 | 90 | } |
| 91 | + | |
| 100 | 92 | - (void)viewDidLoad { |
| 101 | 93 | [super viewDidLoad]; |
| 102 | 94 | // Do any additional setup after loading the view. |
| 103 | - self.title = @"隐私"; | |
| 104 | 95 | self.view.backgroundColor = [UIColor whiteColor]; |
| 96 | + [self loadData:UserDefaultsModel.findStrangerSwitch]; | |
| 105 | 97 | [self getData]; |
| 106 | - NSString *status = [[NSUserDefaults standardUserDefaults] valueForKey:@"findStrangerSwitch"]; | |
| 107 | - [self loadData:status?status:@"access"]; | |
| 108 | 98 | [self createUI]; |
| 109 | 99 | |
| 110 | 100 | } |
| 101 | + | |
| 111 | 102 | //网络监听 |
| 112 | 103 | - (void)cn_noNetworking { |
| 113 | 104 | [self.tableView reloadData]; |
| 114 | - | |
| 115 | 105 | } |
| 116 | 106 | |
| 117 | 107 | - (void)cn_wifiOrWWANNetworking { |
| 118 | 108 | [self.tableView reloadData]; |
| 119 | 109 | } |
| 110 | + | |
| 120 | 111 | #pragma mark - UI |
| 121 | 112 | - (void)createUI { |
| 122 | 113 | [self.view addSubview:self.navigationBar]; |
| 123 | 114 | [self.view addSubview:self.tableView]; |
| 124 | - | |
| 125 | 115 | } |
| 126 | 116 | |
| 127 | 117 | #pragma mark - UITableViewDataSource |
| ... | ... | @@ -131,28 +121,27 @@ |
| 131 | 121 | |
| 132 | 122 | - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { |
| 133 | 123 | return section == 0?1:self.data.count; |
| 134 | - | |
| 135 | 124 | } |
| 136 | 125 | |
| 137 | 126 | - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { |
| 138 | - CNLivePrivacyTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:kCNLivePrivacyTableViewCell forIndexPath:indexPath]; | |
| 127 | + CNLivePrivacyCell *cell = [tableView dequeueReusableCellWithIdentifier:kCNLivePrivacyCell forIndexPath:indexPath]; | |
| 139 | 128 | cell.model = indexPath.section == 0?self.model:self.data[indexPath.row]; |
| 140 | 129 | cell.selectionStyle = UITableViewCellSelectionStyleNone; |
| 141 | 130 | return cell; |
| 142 | - | |
| 143 | 131 | } |
| 144 | 132 | |
| 145 | 133 | - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { |
| 146 | 134 | return self.data[indexPath.row].rowHeight; |
| 147 | - | |
| 148 | 135 | } |
| 136 | + | |
| 149 | 137 | - (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{ |
| 150 | 138 | return section == 0?10:30; |
| 151 | 139 | } |
| 140 | + | |
| 152 | 141 | - (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section{ |
| 153 | 142 | return 0.000001f; |
| 154 | - | |
| 155 | 143 | } |
| 144 | + | |
| 156 | 145 | - (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section{ |
| 157 | 146 | CNLivePrivacyHeaderView *view = [tableView dequeueReusableHeaderFooterViewWithIdentifier:kCNLivePrivacyHeaderView]; |
| 158 | 147 | view.text = section == 0?@"":@"生活圈和视频动态"; |
| ... | ... | @@ -185,7 +174,6 @@ |
| 185 | 174 | vc.name = model.title; |
| 186 | 175 | vc.type = CNTypeNoSeeHim; |
| 187 | 176 | [self.navigationController pushViewController:vc animated:YES]; |
| 188 | - | |
| 189 | 177 | } |
| 190 | 178 | break; |
| 191 | 179 | case 2: //允许陌生人查看生活圈 |
| ... | ... | @@ -205,8 +193,6 @@ |
| 205 | 193 | - (void)navigationBar:(CNLiveSettingNavigationBar *)navigationBar actionEvents:(NSString *)actionEvents{ |
| 206 | 194 | if ([actionEvents isEqualToString:@"1"]) { |
| 207 | 195 | [self goBack]; |
| 208 | - }else if ([actionEvents isEqualToString:@"2"]){ | |
| 209 | - | |
| 210 | 196 | } |
| 211 | 197 | } |
| 212 | 198 | |
| ... | ... | @@ -240,11 +226,10 @@ |
| 240 | 226 | _tableView.separatorStyle = UITableViewCellSeparatorStyleNone; |
| 241 | 227 | _tableView.showsVerticalScrollIndicator = NO; |
| 242 | 228 | _tableView.showsHorizontalScrollIndicator = NO; |
| 243 | - [_tableView registerClass:[CNLivePrivacyTableViewCell class] forCellReuseIdentifier:kCNLivePrivacyTableViewCell]; | |
| 229 | + [_tableView registerClass:[CNLivePrivacyCell class] forCellReuseIdentifier:kCNLivePrivacyCell]; | |
| 244 | 230 | [_tableView registerClass:[CNLivePrivacyHeaderView class] forHeaderFooterViewReuseIdentifier:kCNLivePrivacyHeaderView]; |
| 245 | 231 | } |
| 246 | 232 | return _tableView; |
| 247 | - | |
| 248 | 233 | } |
| 249 | 234 | |
| 250 | 235 | - (NSMutableArray *)data{ | ... | ... |
CNLiveSettingModule/Classes/Privacy/CNLivePrivacyModel.h
CNLiveSettingModule/Classes/Privacy/CNLivePrivacyRequest.h
0 → 100644
| 1 | +// | |
| 2 | +// CNLivePrivacyRequest.h | |
| 3 | +// CNLiveSettingModule | |
| 4 | +// | |
| 5 | +// Created by CNLive-zxw on 2019/4/23. | |
| 6 | +// Copyright © 2019 cnlive. All rights reserved. | |
| 7 | +// | |
| 8 | + | |
| 9 | +#import <UIKit/UIKit.h> | |
| 10 | + | |
| 11 | +NS_ASSUME_NONNULL_BEGIN | |
| 12 | + | |
| 13 | +typedef void(^GetStatusBlock)(NSString *status); | |
| 14 | +typedef void(^ChangeStatusBlock)(BOOL isSuccess); | |
| 15 | + | |
| 16 | +@interface CNLivePrivacyRequest : NSObject | |
| 17 | + | |
| 18 | +// 获取是否允许默认人查看生活区状态 | |
| 19 | ++ (void)getAllowStrangersToSeeState:(GetStatusBlock)block; | |
| 20 | + | |
| 21 | +// 改变是否允许默认人查看生活区状态 | |
| 22 | ++ (void)changeAllowStrangersToSeeState:(NSString *)state block:(ChangeStatusBlock)block; | |
| 23 | + | |
| 24 | +@end | |
| 25 | + | |
| 26 | +NS_ASSUME_NONNULL_END | ... | ... |
CNLiveSettingModule/Classes/Privacy/CNLivePrivacyRequest.m
0 → 100644
| 1 | +// | |
| 2 | +// CNLivePrivacyRequest.m | |
| 3 | +// CNLiveSettingModule | |
| 4 | +// | |
| 5 | +// Created by CNLive-zxw on 2019/4/23. | |
| 6 | +// Copyright © 2019 cnlive. All rights reserved. | |
| 7 | +// | |
| 8 | + | |
| 9 | +#import "CNLivePrivacyRequest.h" | |
| 10 | + | |
| 11 | +#import "MJExtension.h" | |
| 12 | + | |
| 13 | +#import "CNLiveNetworking.h" | |
| 14 | +#import "CNLiveEnvironment.h" | |
| 15 | +#import "CNUserInfoManager.h" | |
| 16 | +#import "CNLivePrivacyModel.h" | |
| 17 | +#import "CNLiveUserDefaultsModel.h" | |
| 18 | + | |
| 19 | +@implementation CNLivePrivacyRequest | |
| 20 | + | |
| 21 | +// 获取是否允许默认人查看生活区状态 | |
| 22 | ++ (void)getAllowStrangersToSeeState:(GetStatusBlock)block{ | |
| 23 | + NSDictionary *params = @{@"appId":AppId, | |
| 24 | + @"sid":CNUserShareModel.uid}; | |
| 25 | + [CNLiveNetworking setAllowRequestDefaultArgument:YES]; | |
| 26 | + [CNLiveNetworking requestNetworkWithMethod:CNLiveRequestMethodPOST URLString:CNIsAllowFindStrangerSwitchUrl Param:params CacheType:CNLiveNetworkCacheTypeNetworkOnly CompletionBlock:^(NSURLSessionTask *requestTask, id responseObject, NSError *error) { | |
| 27 | + if ([responseObject isKindOfClass:[NSDictionary class]] && [responseObject[@"errorCode"] isEqualToString:@"0"]) { | |
| 28 | + if(responseObject[@"data"] && [responseObject[@"data"] isKindOfClass:[NSDictionary class]]){ | |
| 29 | + NSMutableArray <CNLivePrivacyModel *>*arr = [CNLivePrivacyModel mj_objectArrayWithKeyValuesArray:responseObject[@"data"][@"findStrangerSwitch"]]; | |
| 30 | + CNLivePrivacyModel *model = [arr firstObject]; | |
| 31 | + if(model.status&&(![model.status isEqualToString:@""])&&(![UserDefaultsModel.findStrangerSwitch isEqualToString:model.status])){ | |
| 32 | + UserDefaultsModel.findStrangerSwitch = model.status; | |
| 33 | + block?block(model.status):@""; | |
| 34 | + } | |
| 35 | + } | |
| 36 | + | |
| 37 | + } | |
| 38 | + | |
| 39 | + }]; | |
| 40 | +} | |
| 41 | + | |
| 42 | +// 改变是否允许默认人查看生活区状态 | |
| 43 | ++ (void)changeAllowStrangersToSeeState:(NSString *)state block:(ChangeStatusBlock)block{ | |
| 44 | + NSDictionary *params = @{@"appId":AppId, | |
| 45 | + @"type":state, | |
| 46 | + @"sid":CNUserShareModel.uid}; | |
| 47 | + [CNLiveNetworking setAllowRequestDefaultArgument:YES]; | |
| 48 | + [CNLiveNetworking requestNetworkWithMethod:CNLiveRequestMethodPOST URLString:CNSwitchAllowStrangerUrl Param:params CacheType:CNLiveNetworkCacheTypeNetworkOnly CompletionBlock:^(NSURLSessionTask *requestTask, id responseObject, NSError *error) { | |
| 49 | + block?block(([responseObject isKindOfClass:[NSDictionary class]] && [responseObject[@"errorCode"] isEqualToString:@"0"])):@""; | |
| 50 | + }]; | |
| 51 | +} | |
| 52 | + | |
| 53 | +@end | ... | ... |
CNLiveSettingModule/Classes/View/CNLiveSettingCell.m
| ... | ... | @@ -13,6 +13,9 @@ |
| 13 | 13 | |
| 14 | 14 | #import "CNLiveSettingModel.h" |
| 15 | 15 | |
| 16 | +// 本地化数据 | |
| 17 | +#import "CNLiveUserDefaultsModel.h" | |
| 18 | + | |
| 16 | 19 | @interface CNLiveSettingCell() |
| 17 | 20 | @property (nonatomic, strong) UIView *line; |
| 18 | 21 | @property (nonatomic, strong) UILabel *title; |
| ... | ... | @@ -113,6 +116,7 @@ static const NSInteger margin = 12; |
| 113 | 116 | make.right.equalTo(self.line.mas_right).with.offset(-margin); |
| 114 | 117 | |
| 115 | 118 | }]; |
| 119 | + [_switchOn setOn:UserDefaultsModel.goldCoinSound]; | |
| 116 | 120 | |
| 117 | 121 | } |
| 118 | 122 | break; |
| ... | ... | @@ -145,6 +149,7 @@ static const NSInteger margin = 12; |
| 145 | 149 | |
| 146 | 150 | #pragma mark - 响应方法 |
| 147 | 151 | - (void)switchChanged:(UISwitch *)sw{ |
| 152 | + UserDefaultsModel.goldCoinSound = !UserDefaultsModel.goldCoinSound; | |
| 148 | 153 | |
| 149 | 154 | } |
| 150 | 155 | |
| ... | ... | @@ -184,7 +189,6 @@ static const NSInteger margin = 12; |
| 184 | 189 | UIImage *xw_image = [self getImageWithImageName:@"mine_info_front" bundleName:@"CNLiveSettingModule" targetClass:[CNLiveSettingCell class]]; |
| 185 | 190 | _front.image = xw_image; |
| 186 | 191 | _front.contentMode = UIViewContentModeCenter; |
| 187 | - | |
| 188 | 192 | } |
| 189 | 193 | return _front; |
| 190 | 194 | } | ... | ... |
Example/CNLiveSettingModule.xcodeproj/project.pbxproj
| ... | ... | @@ -207,8 +207,8 @@ |
| 207 | 207 | 6003F586195388D20070C39A /* Sources */, |
| 208 | 208 | 6003F587195388D20070C39A /* Frameworks */, |
| 209 | 209 | 6003F588195388D20070C39A /* Resources */, |
| 210 | - 6A7F75A7B7E637A2752F7EE5 /* [CP] Embed Pods Frameworks */, | |
| 211 | - 17743842CB67A72F2519D76B /* [CP] Copy Pods Resources */, | |
| 210 | + C2DFB5708D727D1EC7140381 /* [CP] Embed Pods Frameworks */, | |
| 211 | + D4B4D009160ADF9CDF29107C /* [CP] Copy Pods Resources */, | |
| 212 | 212 | ); |
| 213 | 213 | buildRules = ( |
| 214 | 214 | ); |
| ... | ... | @@ -299,25 +299,29 @@ |
| 299 | 299 | /* End PBXResourcesBuildPhase section */ |
| 300 | 300 | |
| 301 | 301 | /* Begin PBXShellScriptBuildPhase section */ |
| 302 | - 17743842CB67A72F2519D76B /* [CP] Copy Pods Resources */ = { | |
| 302 | + 653FED99FAD33AD7306D3799 /* [CP] Check Pods Manifest.lock */ = { | |
| 303 | 303 | isa = PBXShellScriptBuildPhase; |
| 304 | 304 | buildActionMask = 2147483647; |
| 305 | 305 | files = ( |
| 306 | 306 | ); |
| 307 | + inputFileListPaths = ( | |
| 308 | + ); | |
| 307 | 309 | inputPaths = ( |
| 308 | - "${PODS_ROOT}/Target Support Files/Pods-CNLiveSettingModule_Example/Pods-CNLiveSettingModule_Example-resources.sh", | |
| 309 | - "${PODS_CONFIGURATION_BUILD_DIR}/CNLiveSettingModule/CNLiveSettingModule.bundle", | |
| 310 | + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", | |
| 311 | + "${PODS_ROOT}/Manifest.lock", | |
| 312 | + ); | |
| 313 | + name = "[CP] Check Pods Manifest.lock"; | |
| 314 | + outputFileListPaths = ( | |
| 310 | 315 | ); |
| 311 | - name = "[CP] Copy Pods Resources"; | |
| 312 | 316 | outputPaths = ( |
| 313 | - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/CNLiveSettingModule.bundle", | |
| 317 | + "$(DERIVED_FILE_DIR)/Pods-CNLiveSettingModule_Tests-checkManifestLockResult.txt", | |
| 314 | 318 | ); |
| 315 | 319 | runOnlyForDeploymentPostprocessing = 0; |
| 316 | 320 | shellPath = /bin/sh; |
| 317 | - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-CNLiveSettingModule_Example/Pods-CNLiveSettingModule_Example-resources.sh\"\n"; | |
| 321 | + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; | |
| 318 | 322 | showEnvVarsInLog = 0; |
| 319 | 323 | }; |
| 320 | - 653FED99FAD33AD7306D3799 /* [CP] Check Pods Manifest.lock */ = { | |
| 324 | + B63C2143E7B1CC8A1F17474A /* [CP] Check Pods Manifest.lock */ = { | |
| 321 | 325 | isa = PBXShellScriptBuildPhase; |
| 322 | 326 | buildActionMask = 2147483647; |
| 323 | 327 | files = ( |
| ... | ... | @@ -332,14 +336,14 @@ |
| 332 | 336 | outputFileListPaths = ( |
| 333 | 337 | ); |
| 334 | 338 | outputPaths = ( |
| 335 | - "$(DERIVED_FILE_DIR)/Pods-CNLiveSettingModule_Tests-checkManifestLockResult.txt", | |
| 339 | + "$(DERIVED_FILE_DIR)/Pods-CNLiveSettingModule_Example-checkManifestLockResult.txt", | |
| 336 | 340 | ); |
| 337 | 341 | runOnlyForDeploymentPostprocessing = 0; |
| 338 | 342 | shellPath = /bin/sh; |
| 339 | 343 | shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; |
| 340 | 344 | showEnvVarsInLog = 0; |
| 341 | 345 | }; |
| 342 | - 6A7F75A7B7E637A2752F7EE5 /* [CP] Embed Pods Frameworks */ = { | |
| 346 | + C2DFB5708D727D1EC7140381 /* [CP] Embed Pods Frameworks */ = { | |
| 343 | 347 | isa = PBXShellScriptBuildPhase; |
| 344 | 348 | buildActionMask = 2147483647; |
| 345 | 349 | files = ( |
| ... | ... | @@ -407,26 +411,22 @@ |
| 407 | 411 | shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-CNLiveSettingModule_Example/Pods-CNLiveSettingModule_Example-frameworks.sh\"\n"; |
| 408 | 412 | showEnvVarsInLog = 0; |
| 409 | 413 | }; |
| 410 | - B63C2143E7B1CC8A1F17474A /* [CP] Check Pods Manifest.lock */ = { | |
| 414 | + D4B4D009160ADF9CDF29107C /* [CP] Copy Pods Resources */ = { | |
| 411 | 415 | isa = PBXShellScriptBuildPhase; |
| 412 | 416 | buildActionMask = 2147483647; |
| 413 | 417 | files = ( |
| 414 | 418 | ); |
| 415 | - inputFileListPaths = ( | |
| 416 | - ); | |
| 417 | 419 | inputPaths = ( |
| 418 | - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", | |
| 419 | - "${PODS_ROOT}/Manifest.lock", | |
| 420 | - ); | |
| 421 | - name = "[CP] Check Pods Manifest.lock"; | |
| 422 | - outputFileListPaths = ( | |
| 420 | + "${PODS_ROOT}/Target Support Files/Pods-CNLiveSettingModule_Example/Pods-CNLiveSettingModule_Example-resources.sh", | |
| 421 | + "${PODS_CONFIGURATION_BUILD_DIR}/CNLiveSettingModule/CNLiveSettingModule.bundle", | |
| 423 | 422 | ); |
| 423 | + name = "[CP] Copy Pods Resources"; | |
| 424 | 424 | outputPaths = ( |
| 425 | - "$(DERIVED_FILE_DIR)/Pods-CNLiveSettingModule_Example-checkManifestLockResult.txt", | |
| 425 | + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/CNLiveSettingModule.bundle", | |
| 426 | 426 | ); |
| 427 | 427 | runOnlyForDeploymentPostprocessing = 0; |
| 428 | 428 | shellPath = /bin/sh; |
| 429 | - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; | |
| 429 | + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-CNLiveSettingModule_Example/Pods-CNLiveSettingModule_Example-resources.sh\"\n"; | |
| 430 | 430 | showEnvVarsInLog = 0; |
| 431 | 431 | }; |
| 432 | 432 | /* End PBXShellScriptBuildPhase section */ | ... | ... |
Example/CNLiveSettingModule/CNLIVEAppDelegate.m
| ... | ... | @@ -10,13 +10,32 @@ |
| 10 | 10 | #import "CNLiveSettingController.h" |
| 11 | 11 | #import "CNLiveEnvironment.h" |
| 12 | 12 | #import "CNUserInfoManager.h" |
| 13 | +#import <CNLiveRequestBastKit/CNLiveNetworking.h> | |
| 13 | 14 | |
| 14 | 15 | @implementation CNLIVEAppDelegate |
| 16 | +- (void)networkParamAction{ | |
| 17 | + NSMutableDictionary * mDict = [[NSMutableDictionary alloc] init]; | |
| 18 | + [mDict setValue:@"10514405" forKey:@"loginSid"]; | |
| 15 | 19 | |
| 20 | + [mDict setValue:BundleId forKey:@"platform_id"]; | |
| 21 | + | |
| 22 | + [mDict setValue:[[[[UIDevice currentDevice] identifierForVendor] UUIDString] stringByReplacingOccurrencesOfString:@"-" withString:@""] forKey:@"uuid"]; | |
| 23 | + [mDict setValue:@"i" forKey:@"plat"]; | |
| 24 | + [mDict setValue:@"1.7.8.19.10.30.15"forKey:@"ver"]; | |
| 25 | + [mDict setObject:AppId forKey:@"appId"]; | |
| 26 | + [CNLiveNetworking setupDefaultParam:mDict]; | |
| 27 | + [CNLiveNetworking setupShowResult:NO]; | |
| 28 | + [CNLiveNetworking setupSignKey:APPKey]; | |
| 29 | + [CNLiveNetworking setAllowRequestDefaultArgument:YES]; | |
| 30 | + [CNLiveNetworking setResponseSerializerType:CNLiveResponseSerializerJSON]; | |
| 31 | + | |
| 32 | +} | |
| 16 | 33 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions |
| 17 | 34 | { |
| 18 | 35 | // Override point for customization after application launch. |
| 19 | 36 | [CNLiveEnvironmentManager setEnvironment:CNLiveProductionAppStore]; |
| 37 | + [self networkParamAction]; | |
| 38 | + | |
| 20 | 39 | self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];//UIScreen mainScreen].bounds个人理解获取屏幕的硬件信息然后设置尺寸大小 |
| 21 | 40 | CNLiveSettingController *vc = [[CNLiveSettingController alloc] init]; |
| 22 | 41 | UINavigationController *nav = [[UINavigationController alloc]initWithRootViewController:vc]; | ... | ... |