声网跨房语音,在线用户接口更改,私聊限制
This commit is contained in:
@@ -52,4 +52,5 @@ typedef NS_ENUM(NSUInteger, GradientType) {
|
||||
|
||||
-(UIImage *)compressWithMaxLength:(NSUInteger)maxLength;
|
||||
- (UIImage *)roundedImageWithCornerRadius:(CGFloat)cornerRadius size:(CGSize)size;
|
||||
|
||||
@end
|
||||
|
@@ -12,7 +12,8 @@ NS_ASSUME_NONNULL_BEGIN
|
||||
@interface Api (Message)
|
||||
|
||||
+ (void)getChatLimit:(HttpRequestHelperCompletion)complection receiverUid:(NSString *)receiverUid ;
|
||||
|
||||
///获取私聊限制接口
|
||||
+(void)getPrivateChatCheck:(HttpRequestHelperCompletion)complection content:(NSString *)content toUid:(NSString *)toUid;
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
|
@@ -13,5 +13,8 @@
|
||||
NSString * fang = [NSString stringFromBase64String:@"cHJpdmF0ZUNoYXQvbGltaXQ="];///privateChat/limit
|
||||
[self makeRequest:fang method:HttpRequestHelperMethodGET completion:complection, __FUNCTION__, receiverUid,nil];
|
||||
}
|
||||
|
||||
///获取私聊限制接口
|
||||
+(void)getPrivateChatCheck:(HttpRequestHelperCompletion)complection content:(NSString *)content toUid:(NSString *)toUid{
|
||||
[self makeRequest:@"privateChat/check" method:HttpRequestHelperMethodGET completion:complection, __FUNCTION__, content,toUid,nil];
|
||||
}
|
||||
@end
|
||||
|
@@ -24,6 +24,7 @@ NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
// 获取用户信息
|
||||
- (void)getUserInfoWithUid:(NSString *)uid;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
|
@@ -77,7 +77,7 @@
|
||||
///P
|
||||
#import "MessagePresenter.h"
|
||||
#import "MessageProtocol.h"
|
||||
|
||||
#import "Api+Message.h"
|
||||
|
||||
@interface SessionViewController ()<MessageProtocol, UITableViewDelegate, UITableViewDataSource, NIMChatManagerDelegate, NIMConversationManagerDelegate, NIMMediaManagerDelegate, MessageCellDelegate, TZImagePickerControllerDelegate, SessionNavViewDelegate, SessionRiskViewDelegate,QInputBarViewDelegate, QInputBarViewDataSource,InputBoardDataSource ,InputBoardDelegate , QEmotionBoardViewDelegate, QinputPhotoViewDelegate, SessionUserInfoTableViewCellDelegate, UIImagePickerControllerDelegate, UINavigationControllerDelegate>
|
||||
|
||||
@@ -754,8 +754,16 @@
|
||||
}
|
||||
|
||||
- (void)sendTextMessage:(NSString *)text {
|
||||
NIMMessage *message = [NIMMessageMaker msgWithText:text];
|
||||
[[[NIMSDK sharedSDK] chatManager] sendMessage:message toSession:self.session error:nil];
|
||||
[Api getPrivateChatCheck:^(BaseModel * _Nullable data, NSInteger code, NSString * _Nullable msg) {
|
||||
if(code == 200){
|
||||
NIMMessage *message = [NIMMessageMaker msgWithText:text];
|
||||
[[[NIMSDK sharedSDK] chatManager] sendMessage:message toSession:self.session error:nil];
|
||||
return;
|
||||
}
|
||||
[self showErrorToast:msg];
|
||||
} content:text toUid:self.session.sessionId];
|
||||
|
||||
|
||||
}
|
||||
|
||||
- (void)audioRecordCompletion:(NSString *)recordPath {
|
||||
|
@@ -38,8 +38,7 @@ UIKIT_EXTERN NSString * kUpdateSoundInfo;
|
||||
@property (nonatomic,strong) UITableView *tableView;
|
||||
///数据源
|
||||
@property (nonatomic,strong) NSArray *datasouce;
|
||||
/// 日期选择器
|
||||
@property (nonatomic,strong) XPMineUserInfoDateView *dateView;
|
||||
|
||||
///用户信息
|
||||
@property (nonatomic,strong) UserInfoModel *userInfo;
|
||||
///地区列表
|
||||
@@ -145,15 +144,24 @@ UIKIT_EXTERN NSString * kUpdateSoundInfo;
|
||||
[TTPopup alertWithConfig:config confirmHandler:^{
|
||||
NSURL *url = [NSURL URLWithString:UIApplicationOpenSettingsURLString];
|
||||
if ([[UIApplication sharedApplication] canOpenURL:url]) {
|
||||
[[UIApplication sharedApplication] openURL:url];
|
||||
[[UIApplication sharedApplication] openURL:url options:@{} completionHandler:^(BOOL success) {
|
||||
|
||||
}];
|
||||
}
|
||||
} cancelHandler:^{
|
||||
}];
|
||||
}
|
||||
|
||||
- (void)showDatePickerView {
|
||||
self.dateView.time = self.userInfo.birth/1000;
|
||||
[TTPopup popupView:self.dateView style:TTPopupStyleActionSheet];
|
||||
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];
|
||||
}];
|
||||
}
|
||||
#pragma mark - XPMineUserInfoTagVCDelegate
|
||||
- (void)xPMineUserInfoTagVC:(XPMineUserInfoTagVC *)vc didClickComplete:(NSArray *)meLabels{
|
||||
@@ -305,15 +313,13 @@ UIKIT_EXTERN NSString * kUpdateSoundInfo;
|
||||
|
||||
#pragma mark - XPMineUserInfoDateViewDelegate
|
||||
- (void)xPMineUserInfoDateView:(XPMineUserInfoDateView *)view didClickSureButton:(NSString *)dateStr{
|
||||
[TTPopup dismiss];
|
||||
|
||||
if (dateStr.length > 0) {
|
||||
[self.presenter complectionInfoWithAvatar:nil nick:nil birth:dateStr userDesc:nil];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)xPMineUserInfoDateView:(XPMineUserInfoDateView *)view didClickCancleButton:(UIButton *)sender {
|
||||
[TTPopup dismiss];
|
||||
}
|
||||
|
||||
|
||||
#pragma mark - XPMineUserInfoNickViewControllerDelegate
|
||||
- (void)xPMineUserInfoNickViewController:(XPMineUserInfoNickViewController *)viewController updateNick:(NSString *)nick {
|
||||
@@ -413,12 +419,6 @@ UIKIT_EXTERN NSString * kUpdateSoundInfo;
|
||||
return _tableView;
|
||||
}
|
||||
|
||||
- (XPMineUserInfoDateView *)dateView {
|
||||
if (!_dateView) {
|
||||
_dateView = [[XPMineUserInfoDateView alloc] initWithFrame:CGRectMake(0, 0, KScreenWidth, 216+kSafeAreaBottomHeight+54)];
|
||||
_dateView.delegate = self;
|
||||
}
|
||||
return _dateView;
|
||||
}
|
||||
|
||||
|
||||
@end
|
||||
|
@@ -10,8 +10,7 @@
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
@class XPMineUserInfoDateView;
|
||||
@protocol XPMineUserInfoDateViewDelegate <NSObject>
|
||||
///取消
|
||||
- (void)xPMineUserInfoDateView:(XPMineUserInfoDateView *)view didClickCancleButton:(UIButton *)sender;
|
||||
|
||||
///确定
|
||||
- (void)xPMineUserInfoDateView:(XPMineUserInfoDateView *)view didClickSureButton:(NSString *)dateStr;
|
||||
@end
|
||||
|
@@ -11,15 +11,24 @@
|
||||
///Tool
|
||||
#import "DJDKMIMOMColor.h"
|
||||
|
||||
@interface XPMineUserInfoDateView ()
|
||||
@interface XPMineUserInfoDateView ()<UIPickerViewDelegate,UIPickerViewDataSource>
|
||||
@property (nonatomic,strong)NSMutableArray * selDateArray;
|
||||
|
||||
@property (nonatomic,strong)NSDateComponents * components;//时间结构体、可计算时间间隔、获取年月日时分、
|
||||
@property(nonatomic,strong) UIView *bgView;
|
||||
///
|
||||
@property (nonatomic,strong) UIButton *cancleButton;
|
||||
///
|
||||
@property (nonatomic,strong) UIButton *sureButton;
|
||||
///
|
||||
@property (nonatomic, strong) UIDatePicker *datePicker;
|
||||
@property (nonatomic, strong) UIPickerView *pickerView;
|
||||
///样式
|
||||
@property (nonatomic, strong) NSDateFormatter *dateFormatter;
|
||||
///年龄
|
||||
@property(nonatomic,strong) UILabel *ageView;
|
||||
///星座
|
||||
@property(nonatomic,strong) UILabel *starView;
|
||||
@property(nonatomic,strong) NSMutableArray *dataSourceArray;
|
||||
@end
|
||||
|
||||
@implementation XPMineUserInfoDateView
|
||||
@@ -35,60 +44,260 @@
|
||||
|
||||
#pragma mark - Private Method
|
||||
- (void)initSubViews {
|
||||
self.backgroundColor = [UIColor whiteColor];
|
||||
[self addSubview:self.cancleButton];
|
||||
[self addSubview:self.sureButton];
|
||||
[self addSubview:self.datePicker];
|
||||
self.backgroundColor = [UIColor clearColor];
|
||||
[self addSubview:self.cancleButton];
|
||||
[self addSubview:self.bgView];
|
||||
[self.bgView addSubview:self.ageView];
|
||||
[self.bgView addSubview:self.starView];
|
||||
[self.bgView addSubview:self.sureButton];
|
||||
[self.bgView addSubview:self.pickerView];
|
||||
}
|
||||
|
||||
- (void)initSubViewConstraints {
|
||||
[self.datePicker mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.left.right.mas_equalTo(self);
|
||||
make.bottom.mas_equalTo(self);
|
||||
make.top.mas_equalTo(self.cancleButton.mas_bottom);
|
||||
}];
|
||||
|
||||
[self.cancleButton mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.left.top.mas_equalTo(self);
|
||||
make.height.mas_equalTo(30);
|
||||
make.width.mas_equalTo(50);
|
||||
make.edges.equalTo(self);
|
||||
}];
|
||||
[self.bgView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.leading.bottom.trailing.equalTo(self).inset(kGetScaleWidth(0));
|
||||
make.height.mas_equalTo(kGetScaleWidth(383));
|
||||
}];
|
||||
[self.ageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.top.mas_equalTo(kGetScaleWidth(16));
|
||||
make.width.mas_equalTo(kGetScaleWidth(98));
|
||||
make.height.mas_equalTo(kGetScaleWidth(36));
|
||||
make.leading.mas_equalTo(kGetScaleWidth(80));
|
||||
}];
|
||||
[self.starView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.trailing.mas_equalTo(-kGetScaleWidth(80));
|
||||
make.top.mas_equalTo(kGetScaleWidth(16));
|
||||
make.width.mas_equalTo(kGetScaleWidth(98));
|
||||
make.height.mas_equalTo(kGetScaleWidth(36));
|
||||
}];
|
||||
[self.sureButton mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.right.mas_equalTo(self);
|
||||
make.width.height.centerY.mas_equalTo(self.cancleButton);
|
||||
make.bottom.mas_equalTo(-kGetScaleWidth(42));
|
||||
make.centerX.equalTo(self.bgView);
|
||||
make.width.mas_equalTo(kGetScaleWidth(303));
|
||||
make.height.mas_equalTo(kGetScaleWidth(48));
|
||||
}];
|
||||
[self.pickerView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.left.right.mas_equalTo(self);
|
||||
make.bottom.equalTo(self.sureButton.mas_top);
|
||||
make.top.equalTo(self.starView.mas_bottom).mas_offset(kGetScaleWidth(10));
|
||||
|
||||
}];
|
||||
}
|
||||
#pragma mark- UIPickerViewDelegate,UIPickerViewDataSource
|
||||
-(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView{
|
||||
|
||||
return 3;
|
||||
}
|
||||
|
||||
-(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{
|
||||
|
||||
return [_dataSourceArray[component] count];
|
||||
}
|
||||
|
||||
-(CGFloat)pickerView:(UIPickerView *)pickerView widthForComponent:(NSInteger)component{
|
||||
|
||||
return KScreenWidth/3;
|
||||
}
|
||||
-(CGFloat)pickerView:(UIPickerView *)pickerView rowHeightForComponent:(NSInteger)component{
|
||||
return kGetScaleWidth(40);
|
||||
}
|
||||
|
||||
-(UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view{
|
||||
[self changeSpearatorLineColor];
|
||||
UIView *bgView = (UIView *)view;
|
||||
UILabel *lab = [view viewWithTag:100];
|
||||
if (!bgView) {
|
||||
bgView = [UIView new];
|
||||
bgView.backgroundColor = [UIColor clearColor];
|
||||
}
|
||||
if(!lab){
|
||||
lab = [UILabel labelInitWithText:@"" font:kFontRegular(20) textColor:UIColorFromRGB(0x1E1E1F)];
|
||||
[bgView addSubview:lab];
|
||||
CGFloat x ;
|
||||
if(component == 0){
|
||||
x = kGetScaleWidth(20) ;
|
||||
}else if(component == 1){
|
||||
x = kGetScaleWidth(10) ;
|
||||
}else{
|
||||
x = 0 ;
|
||||
}
|
||||
[lab mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.top.equalTo(bgView);
|
||||
make.leading.mas_equalTo(kGetScaleWidth(x));
|
||||
make.width.mas_equalTo(kGetScaleWidth(98));
|
||||
make.height.mas_equalTo(kGetScaleWidth(40));
|
||||
}];
|
||||
lab.layer.cornerRadius = kGetScaleWidth(8);
|
||||
lab.layer.masksToBounds = YES;
|
||||
lab.textAlignment = NSTextAlignmentCenter;
|
||||
lab.tag = 100;
|
||||
}else{
|
||||
CGFloat x ;
|
||||
if(component == 0){
|
||||
x = kGetScaleWidth(20) ;
|
||||
}else if(component == 1){
|
||||
x = kGetScaleWidth(10) ;
|
||||
}else{
|
||||
x = 0 ;
|
||||
}
|
||||
[lab mas_remakeConstraints:^(MASConstraintMaker *make) {
|
||||
make.top.equalTo(bgView);
|
||||
make.leading.mas_equalTo(kGetScaleWidth(x));
|
||||
make.width.mas_equalTo(kGetScaleWidth(98));
|
||||
make.height.mas_equalTo(kGetScaleWidth(40));
|
||||
}];
|
||||
}
|
||||
|
||||
NSArray *yearArr = @[YMLocalizedString(@"XPIncomeRecordGoldDetailsPickViewView3") ,YMLocalizedString(@"XPIncomeRecordGoldDetailsPickViewView4"),YMLocalizedString(@"XPIncomeRecordGoldDetailsPickViewView5")];
|
||||
if ([self.selDateArray[component]isEqualToString:self.dataSourceArray[component][row]] ) {
|
||||
lab.backgroundColor = UIColorFromRGB(0xF7F7F7);
|
||||
lab.font = kFontRegular(20);
|
||||
lab.text = [NSString stringWithFormat:@"%@%@",self.selDateArray[component],yearArr[component]];
|
||||
lab.textColor = UIColorFromRGB(0x1E1E1F);
|
||||
}else{
|
||||
lab.backgroundColor = [UIColor clearColor];
|
||||
lab.font = kFontRegular(18);
|
||||
lab.text = [NSString stringWithFormat:@"%@%@",self.dataSourceArray[component][row],yearArr[component]];
|
||||
lab.textColor = UIColorRGBAlpha(0x1E1E1F, 0.6);
|
||||
}
|
||||
return bgView;
|
||||
}
|
||||
#pragma mark - 改变分割线的颜色
|
||||
- (void)changeSpearatorLineColor {
|
||||
for(UIView *speartorView in _pickerView.subviews) {
|
||||
if (speartorView.frame.size.height < 80) {//找出当前的 View
|
||||
speartorView.backgroundColor = [UIColor clearColor];
|
||||
}else{
|
||||
speartorView.backgroundColor = [UIColor clearColor];
|
||||
}
|
||||
}
|
||||
}
|
||||
-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component{
|
||||
[self.selDateArray replaceObjectAtIndex:component withObject:self.dataSourceArray[component][row]];
|
||||
[pickerView reloadAllComponents];
|
||||
NSString *time = [NSString stringWithFormat:@"%@-%@-%@",self.selDateArray[0],self.selDateArray[1],self.selDateArray[2]];
|
||||
NSDate *date = [NSDate at_dateFromString:time];
|
||||
NSTimeInterval interval = [date timeIntervalSince1970] * 1000;
|
||||
self.ageView.text = [NSString stringWithFormat:@"%ld%@",[PLTimeUtil ageWithDateFromBirth:interval],YMLocalizedString(@"XPMineUserInfoDateView3")];
|
||||
self.starView.text = [NSString stringWithFormat:@"%@%@",[NSString getCalculateConstellationTextWithMonth:interval],YMLocalizedString(@"XPMineUserInfoDateView4")] ;
|
||||
}
|
||||
//数据源
|
||||
-(NSMutableArray *)dataSourceArray{
|
||||
if(!_dataSourceArray){
|
||||
NSMutableArray * yearArr = [@[]mutableCopy];
|
||||
for (int i = 1900; i < 2050; i++) {
|
||||
[yearArr addObject:@(i).stringValue];
|
||||
}
|
||||
NSArray * monthArr = @[@"01",@"02",@"03",@"04",@"05",@"06",@"07",@"08",@"09",@"10",@"11",@"12"];
|
||||
NSArray * dayArr = [self dayArrayMonth:self.components.month year:self.components.year];
|
||||
|
||||
NSArray * array = @[yearArr,monthArr,dayArr];
|
||||
_dataSourceArray = [array mutableCopy];
|
||||
}
|
||||
|
||||
return _dataSourceArray;
|
||||
}
|
||||
|
||||
//根据月份返回日期
|
||||
-(NSArray *)dayArrayMonth:(NSInteger)month year:(NSInteger)year{
|
||||
NSArray * dayArr = [[NSArray alloc]init];
|
||||
|
||||
switch (month) {
|
||||
case 1: case 3: case 5: case 7: case 8: case 10: case 12:
|
||||
dayArr = @[@"01",@"02",@"03",@"04",@"05",@"06",@"07",@"08",@"09",@"10",@"11",@"12",@"13",@"14",@"15",@"16",@"17",@"18",@"19",@"20",@"21",@"22",@"23",@"24",@"25",@"26",@"27",@"28",@"29",@"30",@"31"];
|
||||
|
||||
break;
|
||||
case 4: case 6: case 9: case 11:
|
||||
dayArr = @[@"01",@"02",@"03",@"04",@"05",@"06",@"07",@"08",@"09",@"10",@"11",@"12",@"13",@"14",@"15",@"16",@"17",@"18",@"19",@"20",@"21",@"22",@"23",@"24",@"25",@"26",@"27",@"28",@"29",@"30"];
|
||||
break;
|
||||
case 2:
|
||||
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {///是润年
|
||||
dayArr = @[@"01",@"02",@"03",@"04",@"05",@"06",@"07",@"08",@"09",@"10",@"11",@"12",@"13",@"14",@"15",@"16",@"17",@"18",@"19",@"20",@"21",@"22",@"23",@"24",@"25",@"26",@"27",@"28",@"29"];
|
||||
}else{
|
||||
dayArr = @[@"01",@"02",@"03",@"04",@"05",@"06",@"07",@"08",@"09",@"10",@"11",@"12",@"13",@"14",@"15",@"16",@"17",@"18",@"19",@"20",@"21",@"22",@"23",@"24",@"25",@"26",@"27",@"28"];
|
||||
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return dayArr;
|
||||
|
||||
}
|
||||
#pragma mark - Event
|
||||
- (void)onClickCancelButton:(UIButton *)sender {
|
||||
if (self.delegate && [self.delegate respondsToSelector:@selector(xPMineUserInfoDateView:didClickCancleButton:)]) {
|
||||
[self.delegate xPMineUserInfoDateView:self didClickCancleButton:sender];
|
||||
}
|
||||
self.backgroundColor = [UIColor clearColor];
|
||||
[UIView animateWithDuration:0.5 animations:^{
|
||||
self.frame = CGRectMake(0, KScreenHeight, KScreenWidth, KScreenHeight);
|
||||
}completion:^(BOOL finished) {
|
||||
[self removeFromSuperview];
|
||||
}];
|
||||
|
||||
}
|
||||
|
||||
- (void)onClickSureButton:(UIButton *)sender {
|
||||
NSDate * date = self.datePicker.date;
|
||||
if (self.delegate && [self.delegate respondsToSelector:@selector(xPMineUserInfoDateView:didClickSureButton:)]) {
|
||||
NSTimeZone *timeZone= [NSTimeZone systemTimeZone];
|
||||
NSInteger seconds= [timeZone secondsFromGMTForDate:date];
|
||||
NSDate *newDate= [date dateByAddingTimeInterval:seconds];
|
||||
NSString *dateStr = [self.dateFormatter stringFromDate:newDate];
|
||||
[self.delegate xPMineUserInfoDateView:self didClickSureButton:dateStr];
|
||||
}
|
||||
if (self.delegate && [self.delegate respondsToSelector:@selector(xPMineUserInfoDateView:didClickSureButton:)]) {
|
||||
NSString *time = [NSString stringWithFormat:@"%@-%@-%@",self.selDateArray[0],self.selDateArray[1],self.selDateArray[2]];
|
||||
[self.delegate xPMineUserInfoDateView:self didClickSureButton:time];
|
||||
}
|
||||
self.backgroundColor = [UIColor clearColor];
|
||||
[UIView animateWithDuration:0.5 animations:^{
|
||||
self.frame = CGRectMake(0, KScreenHeight, KScreenWidth, KScreenHeight);
|
||||
}completion:^(BOOL finished) {
|
||||
[self removeFromSuperview];
|
||||
}];
|
||||
|
||||
}
|
||||
//分解传来需要显示的时间
|
||||
-(NSArray *)receiveTime:(NSString *)timeStr{
|
||||
|
||||
NSArray * timeArray = [timeStr componentsSeparatedByString:@"-"];
|
||||
NSMutableArray * timeArr = [[NSMutableArray alloc]init];
|
||||
for (int i = 0; i<timeArray.count; i++) {
|
||||
NSString * str = [timeArray objectAtIndex:i];
|
||||
if (str.length == 1) {
|
||||
[timeArr addObject:[NSString stringWithFormat:@"0%@",str]];
|
||||
}else if(str.length == 0){
|
||||
[timeArr addObject:@"00"];
|
||||
}else{
|
||||
[timeArr addObject:str];
|
||||
}
|
||||
}
|
||||
|
||||
return timeArr;
|
||||
}
|
||||
|
||||
#pragma mark - Getters And Setters
|
||||
- (void)setTime:(NSTimeInterval)time {
|
||||
_time = time;
|
||||
NSDate *date = [NSDate dateWithTimeIntervalSince1970:time];
|
||||
self.datePicker.date = date;
|
||||
NSTimeZone *timeZone= [NSTimeZone systemTimeZone];
|
||||
NSInteger seconds= [timeZone secondsFromGMTForDate:date];
|
||||
NSDate *newDate= [date dateByAddingTimeInterval:seconds];
|
||||
NSString *dateStr = [self.dateFormatter stringFromDate:newDate];
|
||||
NSArray * timeArr = [[NSArray alloc]init];
|
||||
if (dateStr) {
|
||||
timeArr = [self receiveTime:dateStr];
|
||||
}
|
||||
if (timeArr.count == 3) {//需要显示传入的时间
|
||||
self.selDateArray = [timeArr mutableCopy];
|
||||
for (int i = 0; i < 3; i++) {
|
||||
[self.pickerView selectRow: [self.dataSourceArray[i] indexOfObject:self.selDateArray[i]] inComponent:i animated:YES];
|
||||
}
|
||||
|
||||
}
|
||||
self.ageView.text = [NSString stringWithFormat:@"%ld%@",[PLTimeUtil ageWithDateFromBirth:time*1000],YMLocalizedString(@"XPMineUserInfoDateView3")];
|
||||
self.starView.text = [NSString stringWithFormat:@"%@%@",[NSString getCalculateConstellationTextWithMonth:time*1000],YMLocalizedString(@"XPMineUserInfoDateView4")] ;
|
||||
}
|
||||
- (UIButton *)cancleButton {
|
||||
if (!_cancleButton) {
|
||||
_cancleButton = [UIButton buttonWithType:UIButtonTypeCustom];
|
||||
[_cancleButton setTitle:YMLocalizedString(@"XPMineUserInfoDateView0") forState:UIControlStateNormal];
|
||||
[_cancleButton addTarget:self action:@selector(onClickCancelButton:) forControlEvents:UIControlEventTouchUpInside];
|
||||
_cancleButton.titleLabel.font = [UIFont systemFontOfSize:14];
|
||||
[_cancleButton setTitleColor:[DJDKMIMOMColor secondTextColor] forState:UIControlStateNormal];
|
||||
|
||||
}
|
||||
return _cancleButton;
|
||||
}
|
||||
@@ -96,10 +305,14 @@
|
||||
- (UIButton *)sureButton {
|
||||
if (!_sureButton) {
|
||||
_sureButton = [UIButton buttonWithType:UIButtonTypeCustom];
|
||||
[_sureButton setTitle:YMLocalizedString(@"XPMineUserInfoDateView1") forState:UIControlStateNormal];
|
||||
[_sureButton setTitle:YMLocalizedString(@"XPMineUserInfoDateView2") forState:UIControlStateNormal];
|
||||
[_sureButton addTarget:self action:@selector(onClickSureButton:) forControlEvents:UIControlEventTouchUpInside];
|
||||
_sureButton.titleLabel.font = [UIFont systemFontOfSize:14];
|
||||
[_sureButton setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
|
||||
_sureButton.titleLabel.font = kFontMedium(16);
|
||||
[_sureButton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
|
||||
UIImage *image = [UIImage gradientColorImageFromColors:@[[DJDKMIMOMColor confirmButtonGradientStartColor],[DJDKMIMOMColor confirmButtonGradientMiddleColor],[DJDKMIMOMColor confirmButtonGradientEndColor]] gradientType:GradientTypeLeftToRight imgSize:CGSizeMake(kGetScaleWidth(303), kGetScaleWidth(48))];
|
||||
[_sureButton setBackgroundImage:image forState:UIControlStateNormal];
|
||||
_sureButton.layer.cornerRadius = kGetScaleWidth(48)/2;
|
||||
_sureButton.layer.masksToBounds = YES;
|
||||
}
|
||||
return _sureButton;
|
||||
}
|
||||
@@ -112,22 +325,45 @@
|
||||
return _dateFormatter;
|
||||
}
|
||||
|
||||
- (UIDatePicker *)datePicker {
|
||||
if (!_datePicker){
|
||||
_datePicker = [[UIDatePicker alloc] init];
|
||||
_datePicker.datePickerMode = UIDatePickerModeDate;
|
||||
NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:@"zh_CN"];
|
||||
_datePicker.locale = locale;
|
||||
_datePicker.layer.cornerRadius = 5;
|
||||
_datePicker.layer.masksToBounds = YES;
|
||||
if (@available(iOS 13.4, *)) {
|
||||
_datePicker.preferredDatePickerStyle = UIDatePickerStyleWheels;
|
||||
}
|
||||
NSDate *date = [self.dateFormatter dateFromString:@"2000-07-01"];
|
||||
_datePicker.date = date;
|
||||
_datePicker.backgroundColor = [UIColor whiteColor];
|
||||
}
|
||||
return _datePicker;
|
||||
- (UIPickerView *)pickerView{
|
||||
if (!_pickerView){
|
||||
_pickerView = [[UIPickerView alloc]initWithFrame:CGRectZero];
|
||||
_pickerView.delegate = self;
|
||||
_pickerView.dataSource = self;
|
||||
}
|
||||
return _pickerView;
|
||||
}
|
||||
- (UIView *)bgView{
|
||||
if(!_bgView){
|
||||
_bgView = [UIView new];
|
||||
_bgView.backgroundColor = [UIColor whiteColor];
|
||||
[_bgView setCornerWithLeftTopCorner:kGetScaleWidth(20) rightTopCorner:kGetScaleWidth(20) bottomLeftCorner:0 bottomRightCorner:0 size:CGSizeMake(KScreenWidth, kGetScaleWidth(383))];
|
||||
}
|
||||
return _bgView;
|
||||
}
|
||||
- (UILabel *)ageView{
|
||||
if(!_ageView){
|
||||
_ageView = [UILabel labelInitWithText:@"" font:kFontMedium(16) textColor:UIColorFromRGB(0x1E1E1F)];
|
||||
[_ageView setCornerWithLeftTopCorner:kGetScaleWidth(7) rightTopCorner:kGetScaleWidth(7) bottomLeftCorner:kGetScaleWidth(7) bottomRightCorner:kGetScaleWidth(7) size:CGSizeMake(kGetScaleWidth(98), kGetScaleWidth(36))];
|
||||
_ageView.backgroundColor = UIColorFromRGB(0xF7F7F7);
|
||||
_ageView.textAlignment = NSTextAlignmentCenter;
|
||||
}
|
||||
return _ageView;
|
||||
}
|
||||
- (UILabel *)starView{
|
||||
if(!_starView){
|
||||
_starView = [UILabel labelInitWithText:@"" font:kFontMedium(16) textColor:UIColorFromRGB(0x1E1E1F)];
|
||||
[_starView setCornerWithLeftTopCorner:kGetScaleWidth(7) rightTopCorner:kGetScaleWidth(7) bottomLeftCorner:kGetScaleWidth(7) bottomRightCorner:kGetScaleWidth(7) size:CGSizeMake(kGetScaleWidth(98), kGetScaleWidth(36))];
|
||||
_starView.backgroundColor = UIColorFromRGB(0xF7F7F7);
|
||||
_starView.textAlignment = NSTextAlignmentCenter;
|
||||
}
|
||||
return _starView;
|
||||
}
|
||||
- (NSDateComponents *)components{
|
||||
if(!_components){
|
||||
NSCalendar * calender = [NSCalendar currentCalendar];
|
||||
_components = [calender components:NSCalendarUnitYear|NSCalendarUnitMonth|NSCalendarUnitDay|NSCalendarUnitHour|NSCalendarUnitMinute fromDate:[NSDate date]];
|
||||
}
|
||||
return _components;
|
||||
}
|
||||
|
||||
@end
|
||||
|
@@ -605,14 +605,23 @@
|
||||
}] ;
|
||||
}
|
||||
self.charmImageView.hidden = userInfo.userLevelVo.charmUrl.length <= 0;
|
||||
|
||||
if (userInfo.nameplateWord.length>0 && userInfo.nameplatePic.length>0) {
|
||||
self.nameplateImageView.imageUrl = userInfo.nameplatePic;
|
||||
self.nameplateLabel.text = userInfo.nameplateWord;
|
||||
self.namePlateView.hidden = NO;
|
||||
} else {
|
||||
self.namePlateView.hidden = YES;
|
||||
if(userInfo.isCustomWord == YES){
|
||||
if (userInfo.nameplateWord.length>0) {
|
||||
self.nameplateImageView.imageUrl = userInfo.nameplatePic;
|
||||
self.namePlateView.hidden = NO;
|
||||
} else {
|
||||
self.namePlateView.hidden = YES;
|
||||
}
|
||||
}else{
|
||||
if (userInfo.nameplateWord.length>0 && userInfo.nameplatePic.length>0) {
|
||||
self.nameplateImageView.imageUrl = userInfo.nameplatePic;
|
||||
self.nameplateLabel.text = userInfo.nameplateWord;
|
||||
self.namePlateView.hidden = NO;
|
||||
} else {
|
||||
self.namePlateView.hidden = YES;
|
||||
}
|
||||
}
|
||||
|
||||
self.rechargeImageView.hidden = !_userInfo.isRechargeUser;
|
||||
[self.userPhtotArray removeAllObjects];
|
||||
// 轮播图
|
||||
|
@@ -258,6 +258,29 @@
|
||||
|
||||
|
||||
///铭牌
|
||||
- (NSMutableAttributedString *)createNameplateAttibuteWithImage:(NSString *)imageName{
|
||||
NetImageConfig *config = [[NetImageConfig alloc]init];
|
||||
///先这样吧
|
||||
config.autoLoad = YES;
|
||||
NetImageView *imageView = [[NetImageView alloc]initWithUrl:imageName config:config];
|
||||
UIImage* image = imageView.image;
|
||||
if (image) {
|
||||
CGFloat scale = image.size.width / (image.size.height > 0 ? image.size.height : 1);
|
||||
imageView.bounds = CGRectMake(0, 0, 20 * scale, 20);
|
||||
} else {
|
||||
NSURL *imgUrl = [NSURL URLWithString:imageName];
|
||||
UIImage *myImage = [UIImage imageWithData:[NSData dataWithContentsOfURL:imgUrl]];
|
||||
CGFloat scale = myImage.size.width / (myImage.size.height > 0 ? myImage.size.height : 1);
|
||||
if (scale == 0) {
|
||||
imageView.bounds = CGRectMake(0, 0, 60, 20);
|
||||
}else {
|
||||
imageView.bounds = CGRectMake(0, 0, 20 * scale, 20);
|
||||
}
|
||||
}
|
||||
imageView.contentMode = UIViewContentModeScaleAspectFit;
|
||||
NSMutableAttributedString *string = [NSMutableAttributedString yy_attachmentStringWithContent:imageView contentMode:UIViewContentModeScaleAspectFit attachmentSize:imageView.bounds.size alignToFont:[UIFont boldSystemFontOfSize:12] alignment:YYTextVerticalAlignmentCenter];
|
||||
return string;
|
||||
}
|
||||
- (NSMutableAttributedString *)createNameplateAttibute:(NSString *)tagName image:(NSString *)imageName textFont:(UIFont *)textFont {
|
||||
NetImageConfig *config = [[NetImageConfig alloc]init];
|
||||
///先这样吧
|
||||
@@ -325,12 +348,20 @@
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
//主播认证
|
||||
if (userInfo.nameplateWord.length > 0 && userInfo.nameplatePic.length>0) {
|
||||
[self createNameplateAttibute:userInfo.nameplateWord image:userInfo.nameplatePic textFont:[UIFont systemFontOfSize:9]];
|
||||
[attributedString appendAttributedString:[self createSapceAttribute:2]];
|
||||
}
|
||||
if(userInfo.isCertified == YES){
|
||||
//主播认证
|
||||
if (userInfo.nameplatePic.length > 0) {
|
||||
[self createNameplateAttibuteWithImage:userInfo.nameplatePic];
|
||||
[attributedString appendAttributedString:[self createSapceAttribute:2]];
|
||||
}
|
||||
}else{
|
||||
//主播认证
|
||||
if (userInfo.nameplateWord.length > 0 && userInfo.nameplatePic.length>0) {
|
||||
[self createNameplateAttibute:userInfo.nameplateWord image:userInfo.nameplatePic textFont:[UIFont systemFontOfSize:9]];
|
||||
[attributedString appendAttributedString:[self createSapceAttribute:2]];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// userRank 用户级别
|
||||
if (userInfo.userLevelVo.experUrl) {
|
||||
|
@@ -67,6 +67,8 @@ typedef NS_ENUM(NSInteger, MonentsContentType) {
|
||||
@property (nonatomic, copy) NSString *nameplateWord;
|
||||
///铭牌图片
|
||||
@property (nonatomic, copy) NSString *nameplatePic;
|
||||
///是否自定义铭牌,
|
||||
@property(nonatomic,assign) BOOL isCustomWord;
|
||||
///话题id
|
||||
@property (nonatomic, assign) long worldId;
|
||||
///话题名字
|
||||
|
@@ -255,14 +255,23 @@
|
||||
}
|
||||
|
||||
self.charmImageView.hidden = _monentsInfo.charmLevelPic.length <= 0;
|
||||
|
||||
if (_monentsInfo.nameplateWord.length>0 && _monentsInfo.nameplatePic.length>0) {
|
||||
self.nameplateImageView.imageUrl = _monentsInfo.nameplatePic;
|
||||
self.nameplateLabel.text = _monentsInfo.nameplateWord;
|
||||
self.namePlateView.hidden = NO;
|
||||
} else {
|
||||
self.namePlateView.hidden = YES;
|
||||
if(_monentsInfo.isCustomWord == YES){
|
||||
if (_monentsInfo.nameplateWord.length>0) {
|
||||
self.nameplateImageView.imageUrl = _monentsInfo.nameplatePic;
|
||||
self.namePlateView.hidden = NO;
|
||||
} else {
|
||||
self.namePlateView.hidden = YES;
|
||||
}
|
||||
}else{
|
||||
if (_monentsInfo.nameplateWord.length>0 && _monentsInfo.nameplatePic.length>0) {
|
||||
self.nameplateImageView.imageUrl = _monentsInfo.nameplatePic;
|
||||
self.nameplateLabel.text = _monentsInfo.nameplateWord;
|
||||
self.namePlateView.hidden = NO;
|
||||
} else {
|
||||
self.namePlateView.hidden = YES;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
NSString * headwearUrl= _monentsInfo.headwearEffect.length > 0 ? _monentsInfo.headwearEffect : _monentsInfo.headwearPic;
|
||||
|
@@ -73,6 +73,20 @@
|
||||
}
|
||||
}];
|
||||
}
|
||||
///发起跨房通话
|
||||
- (void)connectOtherRoom:(NSString *)roomUid userId:(NSString *)uid {
|
||||
AgoraChannelMediaRelayConfiguration *config = [[AgoraChannelMediaRelayConfiguration alloc]init];
|
||||
config.sourceInfo = [[AgoraChannelMediaRelayInfo alloc]initWithToken:nil];
|
||||
AgoraChannelMediaRelayInfo *destinationInfo = [[AgoraChannelMediaRelayInfo alloc]initWithToken:nil];
|
||||
[config setDestinationInfo:destinationInfo forChannelName:uid];
|
||||
[self.engine startOrUpdateChannelMediaRelay:config];
|
||||
}
|
||||
|
||||
///退出跨房通话
|
||||
- (void)disconnectOtherRoom {
|
||||
[self.engine stopChannelMediaRelay];
|
||||
}
|
||||
|
||||
|
||||
- (void)destory {
|
||||
[AgoraRtcEngineKit destroy];
|
||||
@@ -131,6 +145,23 @@
|
||||
}
|
||||
|
||||
#pragma mark - AgoraRtcEngineDelegate
|
||||
///监听跨房语音
|
||||
- (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine
|
||||
channelMediaRelayStateDidChange:(AgoraChannelMediaRelayState)state
|
||||
error:(AgoraChannelMediaRelayError)error NS_SWIFT_NAME(rtcEngine(_:channelMediaRelayStateDidChange:error:)){
|
||||
switch (state) {
|
||||
case AgoraChannelMediaRelayStateRunning:
|
||||
|
||||
break;
|
||||
case AgoraChannelMediaRelayStateFailure:
|
||||
|
||||
break;
|
||||
case AgoraChannelMediaRelayStateIdle:
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
- (void)rtcEngine:(AgoraRtcEngineKit *)engine reportAudioVolumeIndicationOfSpeakers:(NSArray *)speakers totalVolume:(NSInteger)totalVolume {
|
||||
NSMutableArray *uids = [NSMutableArray array];
|
||||
for (AgoraRtcAudioVolumeInfo *userInfo in speakers) {
|
||||
|
@@ -39,6 +39,14 @@
|
||||
|
||||
- (void)destory {
|
||||
|
||||
}
|
||||
///发起跨房PK
|
||||
- (void)connectOtherRoom:(NSString *)roomUid userId:(NSString *)uid{
|
||||
|
||||
}
|
||||
|
||||
///退出跨房通话
|
||||
- (void)disconnectOtherRoom{
|
||||
|
||||
}
|
||||
@end
|
||||
|
@@ -82,6 +82,7 @@
|
||||
extModel.carName = userInfo.carName;
|
||||
extModel.inRoomNameplatePic = userInfo.nameplatePic;
|
||||
extModel.inRoomNameplateWord = userInfo.nameplateWord;
|
||||
extModel.isCustomWord = userInfo.isCustomWord;
|
||||
extModel.charmUrl = userInfo.userLevelVo.charmUrl;
|
||||
extModel.experLevelSeq = userInfo.userLevelVo.experLevelSeq;
|
||||
extModel.experUrl = userInfo.userLevelVo.experUrl;
|
||||
|
@@ -68,6 +68,7 @@
|
||||
extModel.carName = userInfo.carName;
|
||||
extModel.inRoomNameplatePic = userInfo.nameplatePic;
|
||||
extModel.inRoomNameplateWord = userInfo.nameplateWord;
|
||||
extModel.isCustomWord = userInfo.isCustomWord;
|
||||
extModel.charmUrl = userInfo.userLevelVo.charmUrl;
|
||||
extModel.experLevelSeq = userInfo.userLevelVo.experLevelSeq;
|
||||
extModel.experUrl = userInfo.userLevelVo.experUrl;
|
||||
|
@@ -8,10 +8,13 @@
|
||||
#import "NSObject+MJExtension.h"
|
||||
#import "UserLevelVo.h"
|
||||
#import "YUMINNNN.h"
|
||||
#import "UserVipInfoVo.h"
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface XPMessageRemoteExtModel : PIBaseModel
|
||||
|
||||
@property (nonatomic , strong) UserLevelVo * userLevelVo;
|
||||
///贵族信息
|
||||
@property (nonatomic, strong) UserVipInfoVo *userVipInfoVO;
|
||||
///魅力等级
|
||||
@property (nonatomic,copy) NSString *charmUrl;
|
||||
@property (nonatomic,assign) NSInteger erbanNo;
|
||||
@@ -55,6 +58,15 @@ NS_ASSUME_NONNULL_BEGIN
|
||||
@property (nonatomic,assign) BOOL fromSayHelloChannel;
|
||||
/// 0 普通 1超管
|
||||
@property (nonatomic,assign) NSInteger platformRole;
|
||||
@property(nonatomic,copy) NSString *avatar;
|
||||
@property(nonatomic,copy) NSString *nick;
|
||||
@property(nonatomic,assign) BOOL inMic;
|
||||
@property(nonatomic,copy) NSString *memberType;
|
||||
///铭牌,
|
||||
@property(nonatomic,copy) NSString *nameplatePic;
|
||||
@property(nonatomic,copy) NSString *nameplateWord;
|
||||
///是否自定义铭牌,
|
||||
@property(nonatomic,assign) BOOL isCustomWord;
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
|
@@ -210,14 +210,22 @@
|
||||
[attribute appendAttributedString:[self createUrlImageAttribute:model.experUrl]];
|
||||
[attribute appendAttributedString:[self createSapceAttribute:2]];
|
||||
}
|
||||
|
||||
if (model.inRoomNameplatePic.length > 0 && model.inRoomNameplateWord.length > 0) { //铭牌有图片加文字
|
||||
[attribute appendAttributedString:[self createNameplateAttibute:model.inRoomNameplateWord image:model.inRoomNameplatePic textFont:[UIFont systemFontOfSize:9]]];
|
||||
[attribute appendAttributedString:[self createSapceAttribute:2]];
|
||||
} else if (model.inRoomNameplatePic.length > 0) {//铭牌只有图片
|
||||
[attribute appendAttributedString:[self createUrlImageAttribute:model.inRoomNameplatePic]];
|
||||
[attribute appendAttributedString:[self createSapceAttribute:2]];
|
||||
}
|
||||
if(model.isCustomWord == YES){
|
||||
if (model.inRoomNameplatePic.length > 0){
|
||||
[attribute appendAttributedString:[self createUrlImageAttribute:model.inRoomNameplatePic]];
|
||||
[attribute appendAttributedString:[self createSapceAttribute:2]];
|
||||
}
|
||||
|
||||
}else{
|
||||
if (model.inRoomNameplatePic.length > 0 && model.inRoomNameplateWord.length > 0) { //铭牌有图片加文字
|
||||
[attribute appendAttributedString:[self createNameplateAttibute:model.inRoomNameplateWord image:model.inRoomNameplatePic textFont:[UIFont systemFontOfSize:9]]];
|
||||
[attribute appendAttributedString:[self createSapceAttribute:2]];
|
||||
} else if (model.inRoomNameplatePic.length > 0) {//铭牌只有图片
|
||||
[attribute appendAttributedString:[self createUrlImageAttribute:model.inRoomNameplatePic]];
|
||||
[attribute appendAttributedString:[self createSapceAttribute:2]];
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
[attribute appendAttributedString:[self createTextAttribute:nick color:[DJDKMIMOMColor messageDefaultTextColor] font:kRoomMessageDefalutFont]];
|
||||
@@ -303,10 +311,18 @@
|
||||
[attribute appendAttributedString:[self createUrlImageAttribute:extModel.experUrl]];
|
||||
[attribute appendAttributedString:[self createSapceAttribute:2]];
|
||||
}
|
||||
if (extModel.inRoomNameplatePic.length > 0 && extModel.inRoomNameplateWord.length > 0) {
|
||||
[attribute appendAttributedString:[self createNameplateAttibute:extModel.inRoomNameplateWord image:extModel.inRoomNameplatePic textFont:[UIFont systemFontOfSize:9]]];
|
||||
[attribute appendAttributedString:[self createSapceAttribute:2]];
|
||||
}
|
||||
if(extModel.isCustomWord == YES){
|
||||
if (extModel.inRoomNameplatePic.length > 0) {
|
||||
[attribute appendAttributedString:[self createUrlImageAttribute:extModel.inRoomNameplatePic]];
|
||||
[attribute appendAttributedString:[self createSapceAttribute:2]];
|
||||
}
|
||||
}else{
|
||||
if (extModel.inRoomNameplatePic.length > 0 && extModel.inRoomNameplateWord.length > 0) {
|
||||
[attribute appendAttributedString:[self createNameplateAttibute:extModel.inRoomNameplateWord image:extModel.inRoomNameplatePic textFont:[UIFont systemFontOfSize:9]]];
|
||||
[attribute appendAttributedString:[self createSapceAttribute:2]];
|
||||
}
|
||||
}
|
||||
|
||||
[attribute appendAttributedString:[self createNickAtrribute:nick uid:message.from.integerValue]];
|
||||
if (extModel.carName.length > 0) {
|
||||
[attribute appendAttributedString:[self createTextAttribute:YMLocalizedString(@"XPRoomMessageParser1") color:[DJDKMIMOMColor messageTextColor] font:kRoomMessageDefalutFont]];
|
||||
|
@@ -115,6 +115,7 @@
|
||||
extModel.carName = userInfo.carName;
|
||||
extModel.inRoomNameplatePic = userInfo.nameplatePic;
|
||||
extModel.inRoomNameplateWord = userInfo.nameplateWord;
|
||||
extModel.isCustomWord = userInfo.isCustomWord;
|
||||
extModel.charmUrl = userInfo.userLevelVo.charmUrl;
|
||||
extModel.experLevelSeq = userInfo.userLevelVo.experLevelSeq;
|
||||
extModel.experUrl = userInfo.userLevelVo.experUrl;
|
||||
|
@@ -68,7 +68,10 @@ NS_ASSUME_NONNULL_BEGIN
|
||||
/// @param completion 完成
|
||||
/// @param uid uid
|
||||
+ (void)getRoomClassifyList:(HttpRequestHelperCompletion)completion uid:(NSString *)uid;
|
||||
|
||||
/// 获取房间在线用户
|
||||
/// @param completion 完成
|
||||
/// @param roomUid roomUid
|
||||
+(void)requestRoomOnlineUserList:(HttpRequestHelperCompletion)completion roomUid:(NSString *)roomUid;
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
|
@@ -97,5 +97,10 @@
|
||||
NSString * fang = [NSString stringFromBase64String:@"c2luZ2xlL2Jyb2FkY2FzdC9zb3J0"];///single/broadcast/sort
|
||||
[self makeRequest:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, uid, nil];
|
||||
}
|
||||
|
||||
/// 获取房间在线用户
|
||||
/// @param completion 完成
|
||||
/// @param roomUid roomUid
|
||||
+(void)requestRoomOnlineUserList:(HttpRequestHelperCompletion)completion roomUid:(NSString *)roomUid{
|
||||
[self makeRequest:@"room/v2/online" method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, roomUid, nil];
|
||||
}
|
||||
@end
|
||||
|
@@ -58,6 +58,9 @@ NS_ASSUME_NONNULL_BEGIN
|
||||
type:(RoomType)type
|
||||
itemType:(RoomSettingItemType)itemType
|
||||
mgId:(NSString *)mgId;
|
||||
/// 获取房间在线用户
|
||||
/// @param roomUid roomUid
|
||||
-(void)getRoomOnlineUserListWithRoomUid:(NSString *)roomUid;
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
|
@@ -17,7 +17,7 @@
|
||||
#import "RoomInfoModel.h"
|
||||
///P
|
||||
#import "XPRoomSettingProtocol.h"
|
||||
|
||||
#import "XPMessageRemoteExtModel.h"
|
||||
@implementation XPRoomSettingPresenter
|
||||
|
||||
- (void)getRoomSettingList:(RoomInfoModel *)roomInfo isSuperAdmin:(BOOL)isSuperAdmin {
|
||||
@@ -349,5 +349,14 @@
|
||||
}];
|
||||
|
||||
}
|
||||
|
||||
/// 获取房间在线用户
|
||||
/// @param roomUid roomUid
|
||||
-(void)getRoomOnlineUserListWithRoomUid:(NSString *)roomUid{
|
||||
[Api requestRoomOnlineUserList:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
|
||||
NSArray *list = [XPMessageRemoteExtModel modelsWithArray:data.data];
|
||||
[[self getView]getRoomOnlineUserListSuccess:list];
|
||||
} fail:^(NSInteger code, NSString * _Nullable msg) {
|
||||
|
||||
}] roomUid:roomUid];
|
||||
}
|
||||
@end
|
||||
|
@@ -11,7 +11,7 @@
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
@class RoomInfoModel;
|
||||
@protocol XPRoomSettingProtocol <NSObject>
|
||||
|
||||
@optional
|
||||
///房间设置的列表数据
|
||||
- (void)getRoomSettingListSuccess:(NSArray *)list;
|
||||
///获取房间信息成功
|
||||
@@ -30,6 +30,8 @@ NS_ASSUME_NONNULL_BEGIN
|
||||
- (void)updateRoomInfoSuccess:(RoomInfoModel *)roomInfo itemType:(RoomSettingItemType)itemType;
|
||||
///更新房间信息失败
|
||||
- (void)updateRoomInfoFail:(NSString *)message;
|
||||
//获取房间在线用户成功
|
||||
-(void)getRoomOnlineUserListSuccess:(NSArray *)list;
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
|
@@ -6,7 +6,7 @@
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
#import "XPMessageRemoteExtModel.h"
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
@class NIMChatroomMember;
|
||||
typedef NS_ENUM(NSInteger, RoomOnLineType) {
|
||||
@@ -21,6 +21,7 @@ typedef NS_ENUM(NSInteger, RoomOnLineType) {
|
||||
@property (nonatomic,assign) RoomOnLineType onlineType;
|
||||
///云信用户实体
|
||||
@property (strong, nonatomic) NIMChatroomMember *member;
|
||||
@property(nonatomic,strong) XPMessageRemoteExtModel *userInfo;
|
||||
///是否在麦序上
|
||||
@property (nonatomic,assign) BOOL isOnMicro;
|
||||
@end
|
||||
|
@@ -138,7 +138,7 @@
|
||||
[self.onMicroStatusLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.centerY.mas_equalTo(self.contentView);
|
||||
make.right.mas_equalTo(-15);
|
||||
make.width.mas_equalTo(32);
|
||||
make.width.mas_equalTo(40);
|
||||
make.height.mas_equalTo(14);
|
||||
}];
|
||||
[self.sexImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
@@ -149,6 +149,68 @@
|
||||
|
||||
|
||||
#pragma mark - Getters And Setters
|
||||
- (void)setUserInfo:(XPMessageRemoteExtModel *)userInfo{
|
||||
_userInfo = userInfo;
|
||||
|
||||
self.sexImageView.backgroundColor = userInfo.gender == GenderType_Male ? UIColorFromRGB(0x6BB3FF) :UIColorFromRGB(0xFF80CC);
|
||||
self.sexImageView.titleEdgeInsets = userInfo.gender != GenderType_Male ? UIEdgeInsetsMake(0, 2, 0, 0):UIEdgeInsetsMake(0, -1, 0, 0);
|
||||
self.sexImageView.selected = userInfo.gender != GenderType_Male;
|
||||
|
||||
if ([userInfo.memberType isEqualToString:@"CREATOR"] || [userInfo.memberType isEqualToString:@"MANAGER"]) {
|
||||
self.tagStackView.hidden = NO;
|
||||
|
||||
if (userInfo.userLevelVo.experUrl) {
|
||||
self.experImageView.imageUrl = userInfo.userLevelVo.experUrl;
|
||||
}
|
||||
self.experImageView.hidden = userInfo.userLevelVo.experUrl.length <= 0;
|
||||
|
||||
if (userInfo.userLevelVo.charmUrl) {
|
||||
self.charmImageView.imageUrl = userInfo.userLevelVo.charmUrl;
|
||||
}
|
||||
self.charmImageView.hidden = userInfo.userLevelVo.charmUrl.length <= 0;
|
||||
if(userInfo.isCustomWord == YES){
|
||||
if (userInfo.nameplatePic.length > 0){
|
||||
self.nameplateImageView.imageUrl = userInfo.nameplatePic;
|
||||
}
|
||||
}else{
|
||||
if (userInfo.nameplatePic.length>0 && userInfo.nameplateWord.length>0) {
|
||||
self.nameplateImageView.imageUrl = userInfo.nameplatePic;
|
||||
self.nameplateLabel.text = userInfo.nameplateWord;
|
||||
self.namePlateView.hidden = NO;
|
||||
} else {
|
||||
self.namePlateView.hidden = YES;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if ([userInfo.memberType isEqualToString:@"CREATOR"]) {
|
||||
self.roleButton.hidden = NO;
|
||||
[self.roleButton setBackgroundColor:[DJDKMIMOMColor appEmphasizeColor2]];
|
||||
[self.roleButton setTitle:YMLocalizedString(@"XPRoomOnlineTableViewCell0") forState:UIControlStateNormal];
|
||||
} else if([userInfo.memberType isEqualToString:@"MANAGER"]) {
|
||||
self.roleButton.hidden = NO;
|
||||
[self.roleButton setBackgroundColor:[DJDKMIMOMColor appEmphasizeColor]];
|
||||
[self.roleButton setTitle:YMLocalizedString(@"XPRoomOnlineTableViewCell1") forState:UIControlStateNormal];
|
||||
} else {
|
||||
self.roleButton.hidden = YES;
|
||||
}
|
||||
} else {
|
||||
self.tagStackView.hidden = YES;
|
||||
}
|
||||
self.isOnMicro = userInfo.inMic;
|
||||
if (userInfo.userVipInfoVO.enterHide == YES) {
|
||||
self.nickLabel.text = YMLocalizedString(@"XPRoomOnlineTableViewCell2");
|
||||
self.avatarImageView.image = [UIImage imageNamed:@"room_secretMan"];
|
||||
self.sexImageView.hidden = YES;
|
||||
self.tagStackView.hidden = YES;
|
||||
self.isOnMicro = NO;
|
||||
} else {
|
||||
self.avatarImageView.imageUrl = userInfo.avatar;
|
||||
self.nickLabel.text = userInfo.nick;
|
||||
self.sexImageView.hidden = NO;
|
||||
}
|
||||
|
||||
}
|
||||
- (void)setMember:(NIMChatroomMember *)member {
|
||||
_member = member;
|
||||
if (_member) {
|
||||
@@ -179,14 +241,23 @@
|
||||
self.charmImageView.imageUrl = userInfo.charmUrl;
|
||||
}
|
||||
self.charmImageView.hidden = userInfo.charmUrl.length <= 0;
|
||||
if(userInfo.isCustomWord == YES){
|
||||
if (userInfo.inRoomNameplatePic.length>0) {
|
||||
self.nameplateImageView.imageUrl = userInfo.inRoomNameplatePic;
|
||||
self.namePlateView.hidden = NO;
|
||||
} else {
|
||||
self.namePlateView.hidden = YES;
|
||||
}
|
||||
}else{
|
||||
if (userInfo.inRoomNameplatePic.length>0 && userInfo.inRoomNameplateWord.length>0) {
|
||||
self.nameplateImageView.imageUrl = userInfo.inRoomNameplatePic;
|
||||
self.nameplateLabel.text = userInfo.inRoomNameplateWord;
|
||||
self.namePlateView.hidden = NO;
|
||||
} else {
|
||||
self.namePlateView.hidden = YES;
|
||||
}
|
||||
}
|
||||
|
||||
if (userInfo.inRoomNameplatePic.length>0 && userInfo.inRoomNameplateWord.length>0) {
|
||||
self.nameplateImageView.imageUrl = userInfo.inRoomNameplatePic;
|
||||
self.nameplateLabel.text = userInfo.inRoomNameplateWord;
|
||||
self.namePlateView.hidden = NO;
|
||||
} else {
|
||||
self.namePlateView.hidden = YES;
|
||||
}
|
||||
|
||||
if (_member.type == NIMTeamMemberTypeOwner) {
|
||||
self.roleButton.hidden = NO;
|
||||
|
@@ -5,11 +5,11 @@
|
||||
// Created by YUMI on 2021/12/29.
|
||||
//
|
||||
|
||||
#import "BaseViewController.h"
|
||||
#import "MvpViewController.h"
|
||||
#import "RoomHostDelegate.h"
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface XPRoomOnLineViewController : BaseViewController
|
||||
@interface XPRoomOnLineViewController : MvpViewController
|
||||
|
||||
- (instancetype)initWithDelegate:(id<RoomHostDelegate>)delegate;
|
||||
@end
|
||||
|
@@ -27,8 +27,9 @@
|
||||
#import "XPRoomRoleEmptyTableViewCell.h"
|
||||
///VC
|
||||
#import "XPUserCardViewController.h"
|
||||
|
||||
@interface XPRoomOnLineViewController ()<UITableViewDelegate, UITableViewDataSource, NIMChatManagerDelegate>
|
||||
#import "XPRoomSettingPresenter.h"
|
||||
#import "XPRoomSettingProtocol.h"
|
||||
@interface XPRoomOnLineViewController ()<UITableViewDelegate, UITableViewDataSource, NIMChatManagerDelegate,XPRoomSettingProtocol>
|
||||
///导航栏
|
||||
@property (nonatomic,strong) UIView * navView;
|
||||
///返回按钮
|
||||
@@ -37,33 +38,28 @@
|
||||
@property (nonatomic,strong) UILabel *titleLabel;
|
||||
///背景图
|
||||
@property (nonatomic,strong) UIImageView *backImageView;
|
||||
///总的数据
|
||||
@property (nonatomic,strong) NSMutableArray *originArray;
|
||||
///需要显示的数据
|
||||
@property (nonatomic,strong) NSMutableArray *datasource;
|
||||
///列表
|
||||
@property (nonatomic,strong) UITableView *tableView;
|
||||
///最后一个
|
||||
@property (nonatomic,strong) NIMChatroomMember *lastMember;
|
||||
///临时成员最后一个
|
||||
@property (nonatomic,strong) NIMChatroomMember *tmpLastMember;
|
||||
///host
|
||||
@property (nonatomic,weak) id<RoomHostDelegate>hostDelegate;
|
||||
///房间的id
|
||||
@property (nonatomic,copy) NSString *roomId;
|
||||
///是否正在刷新
|
||||
@property (nonatomic, assign) BOOL refreshing;
|
||||
|
||||
@end
|
||||
|
||||
@implementation XPRoomOnLineViewController
|
||||
- (void)dealloc {
|
||||
[[NIMSDK sharedSDK].chatManager removeDelegate:self];
|
||||
}
|
||||
|
||||
- (XPRoomSettingPresenter *)createPresenter {
|
||||
return [[XPRoomSettingPresenter alloc] init];
|
||||
}
|
||||
- (instancetype)initWithDelegate:(id<RoomHostDelegate>)delegate {
|
||||
if (self = [super init]) {
|
||||
self.hostDelegate = delegate;
|
||||
self.roomId= [NSString stringWithFormat:@"%ld", self.hostDelegate.getRoomInfo.roomId];
|
||||
self.roomId= [NSString stringWithFormat:@"%ld", self.hostDelegate.getRoomInfo.uid];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
@@ -81,9 +77,9 @@
|
||||
[super viewDidLoad];
|
||||
//监听云信消息
|
||||
[[NIMSDK sharedSDK].chatManager addDelegate:self];
|
||||
[self initHeaderAndFooterRrfresh];
|
||||
[self initSubViews];
|
||||
[self initSubViewConstraints];
|
||||
[self refreshData];
|
||||
}
|
||||
|
||||
#pragma mark - Private Method
|
||||
@@ -123,164 +119,19 @@
|
||||
}];
|
||||
}
|
||||
|
||||
- (void)initHeaderAndFooterRrfresh {
|
||||
MJRefreshNormalHeader *header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(headerRefresh)];
|
||||
header.stateLabel.font = [UIFont systemFontOfSize:10.0];
|
||||
header.lastUpdatedTimeLabel.font = [UIFont systemFontOfSize:10.0];
|
||||
header.stateLabel.textColor = [DJDKMIMOMColor secondTextColor];
|
||||
header.lastUpdatedTimeLabel.textColor = [DJDKMIMOMColor secondTextColor];
|
||||
self.tableView.mj_header = header;
|
||||
|
||||
MJRefreshBackNormalFooter *footer = [MJRefreshBackNormalFooter footerWithRefreshingTarget:self refreshingAction:@selector(footerRefresh)];
|
||||
footer.stateLabel.textColor = [DJDKMIMOMColor secondTextColor];
|
||||
footer.stateLabel.font = [UIFont systemFontOfSize:10.0];
|
||||
self.tableView.mj_footer = footer;
|
||||
|
||||
[self headerRefresh];
|
||||
- (void)refreshData {
|
||||
[self.presenter getRoomOnlineUserListWithRoomUid:self.roomId];
|
||||
}
|
||||
|
||||
- (void)headerRefresh {
|
||||
if (self.refreshing) {
|
||||
return;
|
||||
}
|
||||
self.refreshing = YES;
|
||||
self.lastMember= nil;
|
||||
self.tmpLastMember = nil;
|
||||
[self.datasource removeAllObjects];
|
||||
[[self loadChatRoomRegularMemberList] subscribeNext:^(id _Nullable x) {
|
||||
NSArray * regularList = x;
|
||||
[regularList enumerateObjectsUsingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
|
||||
NIMChatroomMember * member = obj;
|
||||
if (member.type == NIMTeamMemberTypeOwner) {
|
||||
[self.datasource insertObject:member atIndex:0];
|
||||
}else {
|
||||
[self.datasource addObject:member];
|
||||
}
|
||||
}];
|
||||
|
||||
[[self loadChatRoomTmpMemberList] subscribeNext:^(id _Nullable x) {
|
||||
NSArray * tmpList = x;
|
||||
|
||||
[self.datasource addObjectsFromArray:tmpList];
|
||||
[self.tableView reloadData];
|
||||
self.refreshing = NO;
|
||||
}];
|
||||
|
||||
}];
|
||||
|
||||
|
||||
//获取房间在线用户成功
|
||||
-(void)getRoomOnlineUserListSuccess:(NSArray *)list{
|
||||
self.datasource = [NSMutableArray arrayWithArray:list];
|
||||
[self.tableView reloadData];
|
||||
}
|
||||
|
||||
- (void)footerRefresh {
|
||||
if (self.refreshing) {
|
||||
return;
|
||||
}
|
||||
self.refreshing = YES;
|
||||
[[self loadChatRoomRegularMemberList] subscribeNext:^(id _Nullable x) {
|
||||
NSArray * regularList = x;
|
||||
[regularList enumerateObjectsUsingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
|
||||
NIMChatroomMember * member = obj;
|
||||
if (member.type == NIMTeamMemberTypeOwner) {
|
||||
[self.datasource insertObject:member atIndex:0];
|
||||
}else {
|
||||
[self.datasource addObject:member];
|
||||
}
|
||||
}];
|
||||
|
||||
[[self loadChatRoomTmpMemberList] subscribeNext:^(id _Nullable x) {
|
||||
NSArray * tmpList = x;
|
||||
[tmpList enumerateObjectsUsingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
|
||||
[self.datasource addObject:obj];
|
||||
}];
|
||||
[self.tableView reloadData];
|
||||
self.refreshing = NO;
|
||||
}];
|
||||
|
||||
}];
|
||||
}
|
||||
|
||||
- (RACSignal *)loadChatRoomRegularMemberList {
|
||||
return [RACSignal createSignal:^RACDisposable * _Nullable(id<RACSubscriber> _Nonnull subscriber) {
|
||||
NIMChatroomMemberRequest *request = [[NIMChatroomMemberRequest alloc] init];
|
||||
request.roomId = self.roomId;
|
||||
request.type = NIMChatroomFetchMemberTypeRegular;
|
||||
request.lastMember = self.lastMember;
|
||||
request.limit = 200;
|
||||
[[NIMSDK sharedSDK].chatroomManager fetchChatroomMembers:request completion:^(NSError * _Nullable error, NSArray<NIMChatroomMember *> * _Nullable members) {
|
||||
if (error == nil) {
|
||||
if (members.count > 0) {
|
||||
self.lastMember = members.lastObject;
|
||||
}
|
||||
NSMutableArray * array = [NSMutableArray array];
|
||||
[members enumerateObjectsUsingBlock:^(NIMChatroomMember * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
|
||||
if (obj.isOnline && !obj.isInBlackList) {
|
||||
[array addObject:obj];
|
||||
}
|
||||
}];
|
||||
[subscriber sendNext:array];
|
||||
[subscriber sendCompleted];
|
||||
} else {
|
||||
[subscriber sendNext:nil];
|
||||
[subscriber sendCompleted];
|
||||
}
|
||||
}];
|
||||
return nil;
|
||||
}];
|
||||
|
||||
}
|
||||
|
||||
- (RACSignal *)loadChatRoomTmpMemberList {
|
||||
return [RACSignal createSignal:^RACDisposable * _Nullable(id<RACSubscriber> _Nonnull subscriber) {
|
||||
NIMChatroomMemberRequest *request = [[NIMChatroomMemberRequest alloc] init];
|
||||
request.roomId = self.roomId;
|
||||
request.type = NIMChatroomFetchMemberTypeTemp;
|
||||
request.lastMember = self.tmpLastMember;
|
||||
request.limit = 20;
|
||||
[[NIMSDK sharedSDK].chatroomManager fetchChatroomMembers:request completion:^(NSError * _Nullable error, NSArray<NIMChatroomMember *> * _Nullable members) {
|
||||
[self.tableView.mj_header endRefreshing];
|
||||
[self.tableView.mj_footer endRefreshing];
|
||||
if (error == nil) {
|
||||
if (members.count > 0) {
|
||||
self.tmpLastMember = members.lastObject;
|
||||
}
|
||||
NSMutableArray * array = [NSMutableArray array];
|
||||
[members enumerateObjectsUsingBlock:^(NIMChatroomMember * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
|
||||
BOOL isSuperAmind = NO;
|
||||
if (obj.roomExt.length > 0) {
|
||||
NSData *jsonData = [obj.roomExt dataUsingEncoding:NSUTF8StringEncoding];
|
||||
NSError *error;
|
||||
NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableContainers error:&error];
|
||||
XPMessageRemoteExtModel * model = [XPMessageRemoteExtModel modelWithDictionary:[dic objectForKey:obj.userId]];
|
||||
isSuperAmind = model.platformRole == 1;
|
||||
}
|
||||
|
||||
if (obj.isOnline && !obj.isInBlackList && !isSuperAmind) {
|
||||
[array addObject:obj];
|
||||
}
|
||||
}];
|
||||
[subscriber sendNext:array];
|
||||
[subscriber sendCompleted];
|
||||
} else {
|
||||
[subscriber sendNext:nil];
|
||||
[subscriber sendCompleted];
|
||||
}
|
||||
}];
|
||||
return nil;
|
||||
}];
|
||||
}
|
||||
|
||||
///判断是否在麦上
|
||||
- (BOOL)memberIsOnMicro:(NSString *)userId{
|
||||
NSArray *chatRoomMicSequences = [self.hostDelegate.getMicroQueue allValues] ;
|
||||
if (chatRoomMicSequences != nil && chatRoomMicSequences.count > 0) {
|
||||
for (int i = 0; i < chatRoomMicSequences.count; i ++) {
|
||||
MicroQueueModel *chatRoomMicSequence = chatRoomMicSequences[i];
|
||||
if (chatRoomMicSequence.userInfo.uid == userId.integerValue) {
|
||||
return YES;
|
||||
}
|
||||
}
|
||||
}
|
||||
return NO;
|
||||
}
|
||||
|
||||
#pragma mark - NIMChatManagerDelegate
|
||||
- (void)onRecvMessages:(NSArray<NIMMessage *> *)messages {
|
||||
@@ -306,7 +157,7 @@
|
||||
case NIMChatroomEventTypeRemoveBlack:
|
||||
case NIMChatroomEventTypeQueueChange:
|
||||
case NIMChatroomEventTypeKicked:
|
||||
[self headerRefresh];
|
||||
[self refreshData];
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
@@ -328,9 +179,8 @@
|
||||
if (cell == nil) {
|
||||
cell = [[XPRoomOnlineTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([XPRoomOnlineTableViewCell class])];
|
||||
}
|
||||
NIMChatroomMember * member = [self.datasource safeObjectAtIndex1:indexPath.row];
|
||||
cell.isOnMicro = [self memberIsOnMicro:member.userId];
|
||||
cell.member = member;
|
||||
XPMessageRemoteExtModel * member = [self.datasource safeObjectAtIndex1:indexPath.row];
|
||||
cell.userInfo = member;
|
||||
return cell;
|
||||
}
|
||||
|
||||
@@ -352,6 +202,7 @@
|
||||
|
||||
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
|
||||
[tableView deselectRowAtIndexPath:indexPath animated:YES];
|
||||
[self.navigationController popViewControllerAnimated:YES];
|
||||
if (self.datasource.count > 0) {
|
||||
NIMChatroomMember * member = [self.datasource safeObjectAtIndex1:indexPath.row];
|
||||
NSDictionary * extDic = [member.roomExt toJSONObject];
|
||||
|
@@ -574,13 +574,23 @@
|
||||
}
|
||||
self.charmImageView.hidden = userInfo.userLevelVo.charmUrl.length <= 0;
|
||||
self.copysIdImageView.hidden = NO;
|
||||
if (userInfo.nameplateWord.length>0 && userInfo.nameplatePic.length>0) {
|
||||
self.nameplateImageView.imageUrl = userInfo.nameplatePic;
|
||||
self.nameplateLabel.text = userInfo.nameplateWord;
|
||||
self.namePlateView.hidden = NO;
|
||||
} else {
|
||||
self.namePlateView.hidden = YES;
|
||||
}
|
||||
if(userInfo.isCustomWord == YES){
|
||||
if ( userInfo.nameplatePic.length>0) {
|
||||
self.nameplateImageView.imageUrl = userInfo.nameplatePic;
|
||||
self.namePlateView.hidden = NO;
|
||||
} else {
|
||||
self.namePlateView.hidden = YES;
|
||||
}
|
||||
}else{
|
||||
if (userInfo.nameplateWord.length>0 && userInfo.nameplatePic.length>0) {
|
||||
self.nameplateImageView.imageUrl = userInfo.nameplatePic;
|
||||
self.nameplateLabel.text = userInfo.nameplateWord;
|
||||
self.namePlateView.hidden = NO;
|
||||
} else {
|
||||
self.namePlateView.hidden = YES;
|
||||
}
|
||||
}
|
||||
|
||||
self.idLabel.text = [NSString stringWithFormat:@"ID:%ld", userInfo.erbanNo];
|
||||
|
||||
NSString * headwearUrl= userInfo.headwearEffect.length > 0 ? userInfo.headwearEffect : userInfo.headwearPic;
|
||||
|
@@ -70,6 +70,8 @@ NS_ASSUME_NONNULL_BEGIN
|
||||
@property (nonatomic, copy) NSString *nameplatePic;
|
||||
///铭牌名称
|
||||
@property (nonatomic, copy) NSString *nameplateWord;
|
||||
///是否自定义铭牌,
|
||||
@property(nonatomic,assign) BOOL isCustomWord;
|
||||
///如果在房间有直播中字段
|
||||
@property(nonatomic, copy) NSString * roomUid;
|
||||
///如果在房间,房间的标题
|
||||
|
@@ -56,6 +56,6 @@ isEnterprise = [bundleID isEqualToString:@"com.hflighting.yumi"];\
|
||||
#import "HttpRequestHelper.h"
|
||||
#import "BSNetListenModel.h"
|
||||
#import "PIBaseModel.h"
|
||||
#import <LineSDK-Swift.h>
|
||||
#import "PLTimeUtil.h"
|
||||
|
||||
#endif /* PrefixHeader_pch */
|
||||
|
@@ -19,7 +19,7 @@ NS_ASSUME_NONNULL_BEGIN
|
||||
- (NSString *)stringForFormat:(NSString *)format;
|
||||
|
||||
+ (NSString *)stringFromDate:(NSDate *)date;
|
||||
|
||||
+ (NSDate *)at_dateFromString:(NSString *)dateString;
|
||||
+(NSString *)getNowTimeTimestamp;
|
||||
+ (NSString *)getCurrentTimeWithFormat:(NSString *)format;
|
||||
+(NSString *)timestampSwitchTime:(NSInteger)timestamp andFormatter:(NSString *)format;
|
||||
|
@@ -29,6 +29,8 @@ NS_ASSUME_NONNULL_BEGIN
|
||||
+ (NSString *)stringWithTimeStamp:(NSString *)timeStamp;
|
||||
///通过生日获取星座
|
||||
+ (NSString *)calculateConstellationWithMonth:(long)time;
|
||||
///通过生日获取星座
|
||||
+ (NSString *)getCalculateConstellationTextWithMonth:(long)time;
|
||||
///通过生日获取星座图片
|
||||
+ (NSString *)getCalculateConstellationImageWithMonth:(long)time;
|
||||
///得到年龄
|
||||
|
@@ -177,6 +177,31 @@
|
||||
NSDictionary *starDic = @{YMLocalizedString(@"XPMineHeadView9"):@"pi_capricorn",YMLocalizedString(@"XPMineHeadView10"):@"pi_water_bottle",YMLocalizedString(@"XPMineHeadView11"):@"pi_pisces",YMLocalizedString(@"XPMineHeadView12"):@"pi_aries",YMLocalizedString(@"XPMineHeadView13"):@"pi_taurus",YMLocalizedString(@"XPMineHeadView14"):@"pi_gemini",YMLocalizedString(@"XPMineHeadView15"):@"pi_cancer",YMLocalizedString(@"XPMineHeadView16"):@"pi_lion",YMLocalizedString(@"XPMineHeadView17"):@"pi_virgin",YMLocalizedString(@"XPMineHeadView18"):@"pi_libra",YMLocalizedString(@"XPMineHeadView19"):@"pi_scorpion",YMLocalizedString(@"XPMineHeadView20"):@"pi_shooter"};
|
||||
return starDic[result];
|
||||
}
|
||||
///通过生日获取星座
|
||||
+ (NSString *)getCalculateConstellationTextWithMonth:(long)time{
|
||||
NSString *astroString = YMLocalizedString(@"XPMineHeadView0");
|
||||
NSString *astroFormat = @"102123444543";
|
||||
NSString *result;
|
||||
|
||||
NSInteger month = [self getMonth:time];
|
||||
NSInteger day = [self getDay:time];
|
||||
|
||||
if (month<1 || month>12 || day<1 || day>31){
|
||||
return @"";
|
||||
}
|
||||
|
||||
if(month==2 && day>29)
|
||||
{
|
||||
return @"";
|
||||
}else if(month==4 || month==6 || month==9 || month==11) {
|
||||
if (day>30) {
|
||||
return @"";
|
||||
}
|
||||
}
|
||||
|
||||
result=[NSString stringWithFormat:@"%@",[astroString substringWithRange:NSMakeRange(month*2-(day < [[astroFormat substringWithRange:NSMakeRange((month-1), 1)] intValue] - (-19))*2,2)]];
|
||||
return result;
|
||||
}
|
||||
+(NSInteger) getMonth:(long )time
|
||||
{
|
||||
NSDate *date = [NSDate dateWithTimeIntervalSince1970:time/1000];
|
||||
|
@@ -375,7 +375,9 @@
|
||||
"XPMonentsLayoutConfig0" = "置顶 ";
|
||||
"XPMineUserInfoDateView0" = "取消";
|
||||
"XPMineUserInfoDateView1" = "确定";
|
||||
|
||||
"XPMineUserInfoDateView2" = "完成";
|
||||
"XPMineUserInfoDateView3" = "岁";
|
||||
"XPMineUserInfoDateView4" = "座";
|
||||
"XPMineRechageHeadView0" = "我的鑽石";
|
||||
|
||||
"XPMineRechargeNavView0" = "账户";
|
||||
@@ -1762,7 +1764,7 @@
|
||||
"XPRoomOnlineTableViewCell0" = "房主";
|
||||
"XPRoomOnlineTableViewCell1" = "管理员";
|
||||
"XPRoomOnlineTableViewCell2" = "神秘人";
|
||||
"XPRoomOnlineTableViewCell3" = "上麦";
|
||||
"XPRoomOnlineTableViewCell3" = "在麦上";
|
||||
|
||||
"XPRoomTopicViewController0" = "房间公告";
|
||||
"XPRoomTopicViewController1" = "主题不能为空";
|
||||
|
@@ -376,6 +376,9 @@
|
||||
"XPMonentsLayoutConfig0" = "置頂 ";
|
||||
"XPMineUserInfoDateView0" = "取消";
|
||||
"XPMineUserInfoDateView1" = "確定";
|
||||
"XPMineUserInfoDateView2" = "完成";
|
||||
"XPMineUserInfoDateView3" = "歲";
|
||||
"XPMineUserInfoDateView4" = "座";
|
||||
|
||||
"XPMineRechageHeadView0" = "我的鑽石";
|
||||
|
||||
@@ -1760,7 +1763,7 @@
|
||||
"XPRoomOnlineTableViewCell0" = "房主";
|
||||
"XPRoomOnlineTableViewCell1" = "管理員";
|
||||
"XPRoomOnlineTableViewCell2" = "神秘人";
|
||||
"XPRoomOnlineTableViewCell3" = "上麥";
|
||||
"XPRoomOnlineTableViewCell3" = "在麥上";
|
||||
|
||||
"XPRoomTopicViewController0" = "房間公告";
|
||||
"XPRoomTopicViewController1" = "主題不能為空";
|
||||
|
Reference in New Issue
Block a user