551 lines
20 KiB
Objective-C
551 lines
20 KiB
Objective-C
//
|
|
// XPMineUserInfoEditViewController.m
|
|
// xplan-ios
|
|
//
|
|
// Created by 冯硕 on 2021/9/23.
|
|
//
|
|
|
|
#import "XPMineUserInfoEditViewController.h"
|
|
///Third
|
|
#import <Masonry/Masonry.h>
|
|
#import <ReactiveObjC/ReactiveObjC.h>
|
|
#import <TZImagePickerController/TZImagePickerController.h>
|
|
///Tool
|
|
|
|
#import "TTPopup.h"
|
|
#import "YYUtility.h"
|
|
|
|
#import "Api+Mine.h"
|
|
|
|
///Model
|
|
#import "XPMineUserInfoEditModel.h"
|
|
#import "UserInfoModel.h"
|
|
///View
|
|
#import "XPMineUserInfoEditTableViewCell.h"
|
|
#import "XPMineUserInfoDateView.h"
|
|
#import "XPMineUserInfoEditPickView.h"
|
|
///P
|
|
#import "XPMineUserInfoEditProtocol.h"
|
|
#import "XPMineUserInfoEditPresenter.h"
|
|
///VC
|
|
#import "XPMineUserInfoNickViewController.h"
|
|
#import "XPMineUserInfoDesViewController.h"
|
|
#import "XPMineUserInfoAlbumViewController.h"
|
|
#import "XPMineUserInfoRecordedSoundVC.h"
|
|
|
|
#import "AlbumResourcePickerViewController.h"
|
|
|
|
UIKIT_EXTERN NSString * kUpdateSoundInfo;
|
|
|
|
@interface XPMineUserInfoEditViewController ()<
|
|
UITableViewDelegate,
|
|
UITableViewDataSource,
|
|
XPMineUserInfoEditProtocol,
|
|
XPMineUserInfoDesViewControllerDelegate,
|
|
XPMineUserInfoNickViewControllerDelegate,
|
|
UIImagePickerControllerDelegate,
|
|
UINavigationControllerDelegate,
|
|
XPMineUserInfoDateViewDelegate,
|
|
XPMineUserInfoEditPickViewDelegate,
|
|
TZImagePickerControllerDelegate>
|
|
///列表
|
|
@property (nonatomic,strong) UITableView *tableView;
|
|
///数据源
|
|
@property (nonatomic,strong) NSArray *datasouce;
|
|
///用户信息
|
|
@property (nonatomic,strong) UserInfoModel *userInfo;
|
|
///地区列表
|
|
@property (nonatomic,strong) NSMutableArray *areaList;
|
|
|
|
@property (nonatomic,assign) CGFloat maxWidth;
|
|
|
|
@property (nonatomic, assign) BOOL isPhotoPickerDisplayGIF;
|
|
|
|
@end
|
|
|
|
@implementation XPMineUserInfoEditViewController
|
|
-(void)dealloc{
|
|
[[NSNotificationCenter defaultCenter]removeObserver:self];
|
|
}
|
|
- (XPMineUserInfoEditPresenter *)createPresenter {
|
|
return [[XPMineUserInfoEditPresenter alloc] init];
|
|
}
|
|
|
|
- (void)viewDidLoad {
|
|
[super viewDidLoad];
|
|
self.areaList = [NSMutableArray array];
|
|
[self initSubViews];
|
|
[self initSubViewConstraints];
|
|
[self getAreaList];
|
|
}
|
|
-(void)getAreaList {
|
|
[self.presenter getAreaList];
|
|
}
|
|
|
|
- (void)viewWillAppear:(BOOL)animated {
|
|
[super viewWillAppear:animated];
|
|
[self.presenter getUserInfo];
|
|
}
|
|
|
|
#pragma mark - Private Method
|
|
- (void)initSubViews {
|
|
self.view.backgroundColor = [UIColor whiteColor];
|
|
self.title = YMLocalizedString(@"XPMineUserInfoEditViewController0");
|
|
[self.view addSubview:self.tableView];
|
|
}
|
|
|
|
- (void)initSubViewConstraints {
|
|
[self.tableView mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
make.edges.mas_equalTo(self.view);
|
|
}];
|
|
}
|
|
|
|
- (void)showPhotoView {
|
|
@weakify(self);
|
|
TTActionSheetConfig *cameraConfig = [TTActionSheetConfig normalTitle:YMLocalizedString(@"XPMineUserInfoEditViewController1") clickAction:^{
|
|
[YYUtility checkCameraAvailable:^{
|
|
@strongify(self);
|
|
UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
|
|
imagePicker.delegate = self;
|
|
imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;
|
|
imagePicker.allowsEditing = YES;
|
|
[self presentViewController:imagePicker animated:YES completion:NULL];
|
|
} denied:^{
|
|
@strongify(self);
|
|
[self showNotPhoto:YMLocalizedString(@"XPMineUserInfoEditViewController2") content:YMLocalizedString(@"XPMineUserInfoEditViewController3")];
|
|
} restriction:^{
|
|
@strongify(self);
|
|
[self showNotPhoto:YMLocalizedString(@"XPMineUserInfoEditViewController4") content:YMLocalizedString(@"XPMineUserInfoEditViewController5")];
|
|
}];
|
|
}];
|
|
|
|
TTActionSheetConfig *photoLibraryConfig = [TTActionSheetConfig normalTitle:YMLocalizedString(@"XPMineUserInfoEditViewController6") clickAction:^{
|
|
[YYUtility checkAssetsLibrayAvailable:^{
|
|
@strongify(self);
|
|
// UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
|
|
// imagePicker.modalPresentationCapturesStatusBarAppearance = YES;
|
|
// imagePicker.delegate = self;
|
|
// imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
|
|
// imagePicker.allowsEditing = YES;
|
|
|
|
// AlbumResourcePickerViewController *imagePicker = [[AlbumResourcePickerViewController alloc] init];
|
|
// [self presentViewController:imagePicker animated:YES completion:NULL];
|
|
// [imagePicker setDidSelectedAsset:^(PHAsset * _Nonnull asset) {
|
|
//
|
|
// }];
|
|
[self presentViewController:[self photoPickerWillDisplayGIF: NO]
|
|
animated:YES
|
|
completion:nil];
|
|
} denied:^{
|
|
@strongify(self);
|
|
[self showNotPhoto:YMLocalizedString(@"XPMineUserInfoEditViewController7") content:YMLocalizedString(@"XPMineUserInfoEditViewController8")];
|
|
} restriction:^{
|
|
@strongify(self);
|
|
[self showNotPhoto:YMLocalizedString(@"XPMineUserInfoEditViewController9") content:YMLocalizedString(@"XPMineUserInfoEditViewController10")];
|
|
}];
|
|
}];
|
|
|
|
#if DEBUG
|
|
self.userInfo.userVipInfoVO.uploadGifAvatar = YES;
|
|
#endif
|
|
|
|
if (self.userInfo.userVipInfoVO.uploadGifAvatar) {
|
|
TTActionSheetConfig *gifLibraryConfig = [TTActionSheetConfig normalTitle:YMLocalizedString(@"UserInfoEdit_1.0.17_0") clickAction:^{
|
|
[YYUtility checkAssetsLibrayAvailable:^{
|
|
@strongify(self);
|
|
[self presentViewController:[self photoPickerWillDisplayGIF: YES]
|
|
animated:YES
|
|
completion:nil];
|
|
} denied:^{
|
|
@strongify(self);
|
|
[self showNotPhoto:YMLocalizedString(@"XPMineUserInfoEditViewController7") content:YMLocalizedString(@"XPMineUserInfoEditViewController8")];
|
|
} restriction:^{
|
|
@strongify(self);
|
|
[self showNotPhoto:YMLocalizedString(@"XPMineUserInfoEditViewController9") content:YMLocalizedString(@"XPMineUserInfoEditViewController10")];
|
|
}];
|
|
}];
|
|
[TTPopup actionSheetWithItems:@[cameraConfig, photoLibraryConfig, gifLibraryConfig]];
|
|
} else {
|
|
[TTPopup actionSheetWithItems:@[cameraConfig, photoLibraryConfig]];
|
|
}
|
|
}
|
|
|
|
- (TZImagePickerController *)photoPickerWillDisplayGIF:(BOOL)displayGIF {
|
|
self.isPhotoPickerDisplayGIF = displayGIF;
|
|
|
|
TZImagePickerController *imagePickerVc = [[TZImagePickerController alloc] initWithMaxImagesCount:1
|
|
delegate:self];
|
|
imagePickerVc.modalPresentationStyle = UIModalPresentationOverFullScreen;
|
|
imagePickerVc.allowPickingVideo = NO;
|
|
imagePickerVc.allowTakeVideo = NO;
|
|
imagePickerVc.allowPickingGif = displayGIF;
|
|
imagePickerVc.allowCrop = YES;
|
|
CGFloat cropWidth = KScreenWidth;
|
|
imagePickerVc.cropRect = CGRectMake(0, (self.view.bounds.size.height - cropWidth) / 2, cropWidth, cropWidth);
|
|
imagePickerVc.naviBgColor = [DJDKMIMOMColor appCellBackgroundColor];
|
|
imagePickerVc.naviTitleColor = [DJDKMIMOMColor mainTextColor];
|
|
imagePickerVc.barItemTextColor = [DJDKMIMOMColor mainTextColor];
|
|
return imagePickerVc;
|
|
}
|
|
|
|
- (void)showNotPhoto:(NSString *)title content:(NSString *)content {
|
|
TTAlertConfig *config = [[TTAlertConfig alloc] init];
|
|
config.title = title;
|
|
config.message = content;
|
|
|
|
[TTPopup alertWithConfig:config confirmHandler:^{
|
|
NSURL *url = [NSURL URLWithString:UIApplicationOpenSettingsURLString];
|
|
if ([[UIApplication sharedApplication] canOpenURL:url]) {
|
|
[[UIApplication sharedApplication] openURL:url options:@{} completionHandler:^(BOOL success) {
|
|
|
|
}];
|
|
}
|
|
} cancelHandler:^{
|
|
}];
|
|
}
|
|
|
|
- (void)showDatePickerView {
|
|
XPMineUserInfoDateView *dateView = [[XPMineUserInfoDateView alloc] initWithFrame:CGRectMake(0, KScreenHeight, KScreenWidth,KScreenHeight)];
|
|
dateView.delegate = self;
|
|
dateView.time = self.userInfo.birth/1000;
|
|
[kWindow addSubview:dateView];
|
|
[UIView animateWithDuration:0.5 animations:^{
|
|
dateView.frame = CGRectMake(0, 0, KScreenWidth, KScreenHeight);
|
|
}completion:^(BOOL finished) {
|
|
dateView.backgroundColor = [UIColor colorWithWhite:0 alpha:0.5];
|
|
}];
|
|
}
|
|
|
|
- (void)updateCPSetting:(BOOL)isOn type:(NSInteger)type {
|
|
[self showLoading];
|
|
@kWeakify(self);
|
|
[Api updateCPSetting:^(BaseModel * _Nullable data, NSInteger code, NSString * _Nullable msg) {
|
|
@kStrongify(self);
|
|
[self hideHUD];
|
|
if (code == 200) {
|
|
if (type == 1) {
|
|
self.relationUser.showCpAvatar = isOn;
|
|
} else {
|
|
self.relationUser.showCpAnim = isOn;
|
|
}
|
|
[self showSuccessToast:msg];
|
|
} else {
|
|
[self showErrorToast:msg];
|
|
}
|
|
} type:@(type) isShow:@(isOn)];
|
|
}
|
|
|
|
#pragma mark - UITableViewDelegate And UITableViewDataSource
|
|
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
|
|
return 2;
|
|
}
|
|
|
|
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
|
|
if (section == 1) {
|
|
return 2;
|
|
}
|
|
return self.datasouce.count;
|
|
}
|
|
|
|
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
|
|
if (indexPath.section == 1) {
|
|
return kGetScaleWidth(60);
|
|
}
|
|
|
|
XPMineUserInfoEditModel * model = [self.datasouce xpSafeObjectAtIndex:indexPath.row];
|
|
if (model.type == XPMineUserInfoEditType_Avatar) {
|
|
return kGetScaleWidth(80);
|
|
} else {
|
|
return kGetScaleWidth(60);
|
|
}
|
|
}
|
|
|
|
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {
|
|
if (section == 1) {
|
|
return 60;
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
|
|
if (section == 1) {
|
|
// 创建 header view
|
|
UIView *headerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, tableView.frame.size.width, 60)];
|
|
headerView.backgroundColor = [UIColor clearColor];
|
|
|
|
// 创建 label 或者其他子视图
|
|
UILabel *label = [UILabel labelInitWithText:@"CP" font:kFontMedium(15) textColor:UIColorFromRGB(0x313131)];
|
|
|
|
// 添加到 header view
|
|
[headerView addSubview:label];
|
|
|
|
// 设置 Auto Layout 约束,给 label 添加左间距
|
|
label.translatesAutoresizingMaskIntoConstraints = NO;
|
|
[NSLayoutConstraint activateConstraints:@[
|
|
[label.leadingAnchor constraintEqualToAnchor:headerView.leadingAnchor constant:16], // 左间距为16
|
|
[label.centerYAnchor constraintEqualToAnchor:headerView.centerYAnchor], // 垂直居中
|
|
]];
|
|
|
|
return headerView;
|
|
}
|
|
return nil;
|
|
}
|
|
|
|
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
|
|
|
|
XPMineUserInfoEditTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([XPMineUserInfoEditTableViewCell class])];
|
|
if (cell == nil) {
|
|
cell = [[XPMineUserInfoEditTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([XPMineUserInfoEditTableViewCell class])];
|
|
}
|
|
|
|
if (indexPath.section == 1) {
|
|
XPMineUserInfoEditModel *model = [[XPMineUserInfoEditModel alloc] init];
|
|
if (indexPath.row == 0) {
|
|
model.isCPAnimation = self.relationUser.showCpAnim;
|
|
model.title = YMLocalizedString(@"UserDetail_Setting_0");
|
|
model.type = XPMineUserInfoEditType_CP_Animation;
|
|
} else {
|
|
model.isCPAvatar = self.relationUser.showCpAvatar;
|
|
model.title =YMLocalizedString(@"UserDetail_Setting_1");
|
|
model.type = XPMineUserInfoEditType_CP_Avatar;
|
|
}
|
|
cell.itmeModel = model;
|
|
|
|
@kWeakify(self);
|
|
[cell setChangeCPSwitch:^(BOOL isOn, NSInteger type) {
|
|
@kStrongify(self);
|
|
[self updateCPSetting:isOn type:type];
|
|
}];
|
|
|
|
return cell;
|
|
}
|
|
|
|
XPMineUserInfoEditModel * model = [self.datasouce xpSafeObjectAtIndex:indexPath.row];
|
|
if(model.type == XPMineUserInfoEditType_Tag){
|
|
|
|
}else if(model.type == XPMineUserInfoEditType_Area){
|
|
model.subTitle = self.area;
|
|
}
|
|
|
|
cell.itmeModel = model;
|
|
return cell;
|
|
}
|
|
|
|
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
|
|
[tableView deselectRowAtIndexPath:indexPath animated:YES];
|
|
if (indexPath.section == 1) {
|
|
return;
|
|
}
|
|
XPMineUserInfoEditModel * model = [self.datasouce xpSafeObjectAtIndex:indexPath.row];
|
|
switch (model.type) {
|
|
case XPMineUserInfoEditType_Nick:
|
|
{
|
|
XPMineUserInfoNickViewController * nickVC = [[XPMineUserInfoNickViewController alloc] init];
|
|
nickVC.delegate = self;
|
|
nickVC.nick = self.userInfo.nick;
|
|
[self.navigationController pushViewController:nickVC animated:YES];
|
|
}
|
|
break;
|
|
case XPMineUserInfoEditType_Avatar: {
|
|
if (self.userInfo.isReview) {
|
|
[self showErrorToast:YMLocalizedString(@"XPMineUserInfoEditViewController11")];
|
|
} else {
|
|
[self showPhotoView];
|
|
}
|
|
}
|
|
break;
|
|
case XPMineUserInfoEditType_Birth:
|
|
[self showDatePickerView];
|
|
break;
|
|
case XPMineUserInfoEditType_UseDes:
|
|
{
|
|
XPMineUserInfoDesViewController * desVC = [[XPMineUserInfoDesViewController alloc] init];
|
|
desVC.delegate = self;
|
|
desVC.userDesc = self.userInfo.userDesc;
|
|
[self.navigationController pushViewController:desVC animated:YES];
|
|
}
|
|
break;
|
|
case XPMineUserInfoEditType_Photo:
|
|
{
|
|
XPMineUserInfoAlbumViewController * albumVC = [[XPMineUserInfoAlbumViewController alloc] init];
|
|
[self.navigationController pushViewController:albumVC animated:YES];
|
|
}
|
|
break;
|
|
case XPMineUserInfoEditType_Sound:
|
|
break;
|
|
case XPMineUserInfoEditType_Tag:
|
|
break;
|
|
|
|
case XPMineUserInfoEditType_Area:
|
|
{
|
|
XPMineUserInfoEditPickView *pckView = [[XPMineUserInfoEditPickView alloc]initWithFrame:CGRectMake(0, 0, KScreenWidth, KScreenHeight)];
|
|
pckView.area = self.area;
|
|
|
|
pckView.dataArray = self.areaList;
|
|
pckView.delegate = self;
|
|
[kWindow addSubview:pckView];
|
|
break;
|
|
}
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
|
|
#pragma mark - TZImagePickerControllerDelegate
|
|
- (BOOL)isAssetCanBeDisplayed:(PHAsset *)asset {
|
|
if (self.isPhotoPickerDisplayGIF) {
|
|
return [[asset valueForKey:@"filename"] containsString:@"GIF"];
|
|
} else {
|
|
return ![[asset valueForKey:@"filename"] containsString:@"GIF"];
|
|
}
|
|
// if ([[asset valueForKey:@"filename"] containsString:@"GIF"]) {
|
|
// // TODO: 新增参数,通过参数判断是否显示 GIF
|
|
// if (self.userInfo.userVipInfoVO.vipLevel > 2) {
|
|
// return NO;
|
|
// }
|
|
// }
|
|
// return YES; // 其他类型的资源正常显示
|
|
}
|
|
|
|
- (void)imagePickerController:(TZImagePickerController *)picker
|
|
didFinishPickingPhotos:(NSArray<UIImage *> *)photos
|
|
sourceAssets:(NSArray *)assets
|
|
isSelectOriginalPhoto:(BOOL)isSelectOriginalPhoto
|
|
infos:(NSArray<NSDictionary *> *)infos {
|
|
PHAsset *sourceAsset = assets.firstObject;
|
|
if ([[sourceAsset valueForKey:@"filename"] containsString:@"GIF"]) {
|
|
@kWeakify(self);
|
|
dispatch_async(dispatch_get_main_queue(), ^{
|
|
@kStrongify(self);
|
|
[self showLoading];
|
|
[[PHImageManager defaultManager] requestImageDataForAsset:sourceAsset
|
|
options:nil
|
|
resultHandler:^(NSData * _Nullable imageData, NSString * _Nullable dataUTI, UIImageOrientation orientation, NSDictionary * _Nullable info) {
|
|
[self.presenter uploadGifAvatar:imageData];
|
|
}];
|
|
[picker dismissViewControllerAnimated:YES completion:^{}];
|
|
});
|
|
} else {
|
|
@kWeakify(self);
|
|
dispatch_async(dispatch_get_main_queue(), ^{
|
|
@kStrongify(self);
|
|
UIImage *croppedImage = photos.firstObject; // 选中的裁剪后的图片
|
|
// 在这里处理裁剪后的图片
|
|
if (croppedImage) {
|
|
[self showLoading];
|
|
[self.presenter uploadAvatar:croppedImage];
|
|
}
|
|
[picker dismissViewControllerAnimated:YES completion:^{}];
|
|
});
|
|
}
|
|
}
|
|
|
|
#pragma mark - UIImagePickerControllerDelegate
|
|
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
|
|
{
|
|
UIImage *selectedPhoto = [info objectForKey:UIImagePickerControllerEditedImage];
|
|
if (selectedPhoto) {
|
|
if (picker.sourceType == UIImagePickerControllerSourceTypeCamera) {
|
|
UIImageWriteToSavedPhotosAlbum(selectedPhoto, nil, nil, nil);
|
|
}
|
|
[self showLoading];
|
|
[self.presenter uploadAvatar:selectedPhoto];
|
|
}
|
|
[picker dismissViewControllerAnimated:YES completion:^{}];
|
|
}
|
|
|
|
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker{
|
|
[picker dismissViewControllerAnimated:YES completion:^{
|
|
}];
|
|
}
|
|
|
|
#pragma mark - XPMineUserInfoDateViewDelegate
|
|
- (void)xPMineUserInfoDateView:(XPMineUserInfoDateView *)view didClickSureButton:(NSString *)dateStr{
|
|
|
|
if (dateStr.length > 0) {
|
|
[self.presenter complectionInfoWithAvatar:nil nick:nil birth:dateStr userDesc:nil];
|
|
}
|
|
}
|
|
|
|
|
|
|
|
#pragma mark - XPMineUserInfoNickViewControllerDelegate
|
|
- (void)xPMineUserInfoNickViewController:(XPMineUserInfoNickViewController *)viewController updateNick:(NSString *)nick {
|
|
if (nick.length > 0) {
|
|
[self.presenter complectionInfoWithAvatar:nil nick:nick birth:nil userDesc:nil];
|
|
}
|
|
}
|
|
#pragma mark - XPMineUserInfoDesViewControllerDelegate
|
|
- (void)xPMineUserInfoDesViewController:(XPMineUserInfoDesViewController *)viewController updateUserDes:(NSString *)userDes {
|
|
if (userDes.length > 0) {
|
|
[self.presenter complectionInfoWithAvatar:nil nick:nil birth:nil userDesc:userDes];
|
|
}
|
|
}
|
|
|
|
#pragma mark - XPMineUserInfoEditProtocol
|
|
- (void)getUserInfoEditDataSourceSuccess:(NSArray *)array {
|
|
self.datasouce = array;
|
|
[self.tableView reloadData];
|
|
}
|
|
-(void)getAreaListSuccess:(NSArray *)list{
|
|
self.areaList = [list mutableCopy];
|
|
}
|
|
- (void)saveAreaSuccess{
|
|
if(self.delegate && [self.delegate respondsToSelector:@selector(xPMineUserInfoEditViewControllerC:didClickCompleteArea:)]){
|
|
[self.delegate xPMineUserInfoEditViewControllerC:self didClickCompleteArea:self.area];
|
|
}
|
|
[self.tableView reloadData];
|
|
}
|
|
- (void)completeUserInfoSuccess:(UserInfoModel *)userInfo {
|
|
if (userInfo.isReview) {
|
|
[self showSuccessToast:YMLocalizedString(@"XPMineUserInfoEditViewController12")];
|
|
dispatch_time_t delayTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(3.0 * NSEC_PER_SEC));
|
|
dispatch_after(delayTime, dispatch_get_main_queue(), ^{
|
|
[self.presenter getUserInfo];
|
|
});
|
|
} else {
|
|
[self showSuccessToast:YMLocalizedString(@"XPMineUserInfoEditViewController13")];
|
|
[self.presenter getUserInfo];
|
|
}
|
|
}
|
|
|
|
- (void)onGetUserInfoSuccess:(UserInfoModel *)userInfo {
|
|
self.userInfo = userInfo;
|
|
[self.presenter getUserInfoEditDataSourceWithUserInfo:self.userInfo];
|
|
}
|
|
|
|
- (void)uploadImageSuccess:(NSString *)url {
|
|
@kWeakify(self);
|
|
dispatch_async(dispatch_get_main_queue(), ^{
|
|
@kStrongify(self);
|
|
[self hideHUD];
|
|
[self.presenter complectionInfoWithAvatar:url nick:nil birth:nil userDesc:nil];
|
|
});
|
|
}
|
|
#pragma mark - XPMineUserInfoEditPickView
|
|
- (void)didClickSureActionWithArea:(NSString *)area{
|
|
self.area = area;
|
|
[self.presenter saveAreaConfigWithArea:area];
|
|
}
|
|
#pragma mark - Getters And Setters
|
|
- (UITableView *)tableView {
|
|
if (!_tableView) {
|
|
_tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain];
|
|
_tableView.delegate = self;
|
|
_tableView.dataSource = self;
|
|
_tableView.tableFooterView = [UIView new];
|
|
_tableView.tableHeaderView = [UIView new];
|
|
_tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
|
|
_tableView.backgroundColor = [UIColor clearColor];
|
|
if (@available(iOS 11.0, *)) {
|
|
_tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
|
|
}
|
|
[_tableView registerClass:[XPMineUserInfoEditTableViewCell class] forCellReuseIdentifier:NSStringFromClass([XPMineUserInfoEditTableViewCell class])];
|
|
}
|
|
return _tableView;
|
|
}
|
|
|
|
|
|
|
|
@end
|