萤石云 iOSSDK,移植跨平台相关工程
Davin
2023-07-10 0de4cf306d8e13fd57b3e04bfb81362a10f12a4d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
//
//  HDLEZDeviceMsgListView.m
//  EZSDK
//
//  Created by 陈启扬 on 2023/3/16.
//
 
#import "HDLEZDeviceMsgListView.h"
#import "HDLEZDeviceMsgCell.h"
#import "HDLEZVideoDoorMsgCell.h"
 
@interface HDLEZDeviceMsgListView ()
 
@property (copy, nonatomic) void(^previewPic)(NSString *pictureUrl);
 
@end
 
@implementation HDLEZDeviceMsgListView{
    CGFloat cellHeight;
}
 
-(instancetype)init{
    self = [super init];
    if (self) {
        self.backgroundColor = HDLEZ_COLOR_VIEW_BACKGROUND;
//        self.backgroundColor = [UIColor greenColor];
 
        self.separatorStyle = NO;
        self.showsVerticalScrollIndicator=NO;
        self.delegate = self;
        self.dataSource = self;
        cellHeight=80;
        self.rowHeight = UITableViewAutomaticDimension;
        self.estimatedRowHeight = 80;
        [self registerClass:[HDLEZVideoDoorMsgCell class] forCellReuseIdentifier:@"HDLEZVideoDoorMsgCell"];
        [self setSeparatorInset:UIEdgeInsetsZero];
//        [self setLayoutMargins:UIEdgeInsetsZero];
    }
    
    return  self;
}
 
-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
    return 1;
}
 
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
    return _msgList.count;
}
 
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
    return UITableViewAutomaticDimension;
}
 
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
    HDLEZLog(@"初始化cell");
    HDLEZVideoDoorMsgCell *cell = [tableView dequeueReusableCellWithIdentifier:@"HDLEZVideoDoorMsgCell" forIndexPath:indexPath];
    if(cell == nil){
        cell=[[HDLEZVideoDoorMsgCell alloc]initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@"HDLEZVideoDoorMsgCell"];
    }
    [self configCell:cell indexPath:indexPath];
//    HDLEZDeviceMsgCell *cell = [tableView dequeueReusableCellWithIdentifier:@"HDLEZDeviceMsgCell"];
//    if(cell == nil){
//        cell=[[HDLEZDeviceMsgCell alloc]initWithFrame:CGRectMake(0, 0, self.frame.size.width, cellHeight)];
//    }
//    HDLEZDeviceMsgInfoModel *model=self.msgList[indexPath.row];
//    cell.msgInfo=model;
//    HDLEZLog(@"初始化cell ID:%@",model.extVisitorId);
    
    return cell;
 
}
 
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    if (self.msgList.count <= indexPath.row) return;
    HDLEZDeviceMsgInfoModel *messageModel = self.msgList[indexPath.row];
    if (self.previewPic && messageModel.extInfo.picUrl && messageModel.extInfo.picUrl.length > 0) {
        self.previewPic(messageModel.extInfo.picUrl);
    }
}
 
#pragma mark - PublishMethod
- (void)previewPicture:(void(^)(NSString *pictureUrl))previewPic {
    self.previewPic = previewPic;
}
 
#pragma mark - PrivateMethod
- (void)configCell:(HDLEZVideoDoorMsgCell *)cell indexPath:(NSIndexPath *)indexPath {
    if (self.msgList.count <= indexPath.row) return;
    
    HDLEZDeviceMsgInfoModel *messageModel = self.msgList[indexPath.row];
    
    NSString *status = @"";
    if ([messageModel.extInfo.answerStatus isEqualToString:@"answer"]) {
        status = HDLEZLocallizedString(@"device_callout_answer");
    } else if (([messageModel.extInfo.answerStatus isEqualToString:@"no_answer"])) {
        status = HDLEZLocallizedString(@"device_callout_no_answer");
    }
    if (messageModel.createTime && messageModel.createTime.length == 13) {  // 毫秒转秒
        messageModel.createTime = [messageModel.createTime substringToIndex:10];
    }
    NSString *messageTime = [self turnDate:messageModel.createTime];
    [cell configMessageInfoWithTitle:messageModel.content deviceStatus:status messageTime:messageTime messageImage:messageModel.extInfo.picUrl];
    [cell showSpearator:(self.msgList.count != indexPath.row + 1)];
}
 
/*时间戳转时间
 */
-(NSString *)turnDate:(NSString*)dateStr{
    return [HDLEZConstants timeStrWithFormate:@"yyyy.MM.dd HH:mm" data:[NSDate dateWithTimeIntervalSince1970:[dateStr integerValue]]];;
}
 
/*设置消息列表值
 */
-(void)setMsgList:(NSArray<HDLEZDeviceMsgInfoModel *> *)msgList{
    _msgList=msgList;
    [self reloadData];
}
@end