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
import 'package:flutter/material.dart';
import 'package:gmalpha_flutter/NewMessageModel/service/MessageRepository.dart';
import 'package:gmalpha_flutter/NewMessageModel/service/remote/entity/LatestMessageEntity.dart';
import 'package:gmalpha_flutter/NewMessageModel/service/remote/entity/UnreadMessageEntity.dart';
import 'package:gmalpha_flutter/NewMessageModel/service/remote/entity/MyMessageEntity.dart';
import 'package:gmalpha_flutter/commonModel/live/BaseModel.dart';
import 'package:gmalpha_flutter/commonModel/live/LiveData.dart';
import 'package:gmalpha_flutter/commonModel/toast/toast.dart';
class MessageModel extends BaseModel {
final int page;
final int count;
LiveData<MyMessageEntity> myMessageLive = new LiveData();
LiveData<UnreadMessageEntity> likeUnreadMessageLive = new LiveData();
LiveData<UnreadMessageEntity> followUnreadMessageLive = new LiveData();
LiveData<LatestMessageEntity> latestMessageLive = new LiveData();
MyMessageEntity myMessageList;
MessageModel(this.page, this.count);
init(BuildContext context) {
getMyMessage(page, count);
getUnreadMessage(0, likeUnreadMessageLive);
getUnreadMessage(1, followUnreadMessageLive);
getLatestMessage();
}
getMyMessage(page, count, [callback]){
MessageRepository.getInstance()
.getMyMessage(page, count)
.listen((value) {
if (value != null) {
if(page > 1) {
myMessageList.data?.addAll(value.data);
} else {
myMessageList = value;
}
if(callback != null) callback(value);
myMessageLive.notifyView(myMessageList);
}
}).onError((error) {
Toast.show(error, "${error.toString()}");
});
}
getUnreadMessage(type, dataLive) {
MessageRepository.getInstance()
.getUnreadMessage(type)
.listen((value) {
if (value != null) {
dataLive.notifyView(value);
}
}).onError((error) {
Toast.show(error, "${error.toString()}");
});
}
getLatestMessage() {
MessageRepository.getInstance()
.getLatestMessage()
.listen((value) {
if (value != null) {
latestMessageLive.notifyView(value);
}
}).onError((error) {
Toast.show(error, "${error.toString()}");
});
}
@override
void dispose() {
myMessageLive.dispost();
likeUnreadMessageLive.dispost();
followUnreadMessageLive.dispost();
latestMessageLive.dispost();
}
}