flutter_dr_uichat 1.0.0
flutter_dr_uichat: ^1.0.0 copied to clipboard
This pub fluter allow you implement Message screen and Chat screen.
flutter_dr_uichat #

Highly video, feature-packed flutter_dr_uichat widget for Flutter.
![]() |
---|
Features #
- Message screen or Inbx Message Screen.
- Chat Screen.
Usage #
Make sure to check out examples
Installation #
Add the following line to pubspec.yaml
:
dependencies:
flutter_dr_uichat: ^1.0.0
Basic setup #
The complete example is available here.
Youn can check messages title screen
void main() {
DRChatConfig.config.set(titleMessage: "Messages");
runApp(const MyApp());
}
Init all function
List<DRUIChatUser> users = [];
List<DRUIChatMessage> chatMessages = [];
@override
void initState() {
super.initState();
//show chat bubble
initChatBubble();
//Set Message screen event
setDRMessageEvent();
//SetChat screen event
setDRChatEvent();
}
imlement all function to support lib
void initChatBubble() {
WidgetsBinding.instance.addPostFrameCallback((_) {
DRUIChatBubble.initChatBubble(
context,
backgroundColor: Colors.green,
delay: const Duration(seconds: 2), // Optional delay before showing
);
});
}
//Testing Receiver
void testingReceiver() {
Future.delayed(const Duration(milliseconds: 500), () {
DRChatService.chatService.addReceiver(
DRUIChatMessage(
id: 1,
name: "kuchdarith",
isSender: false,
message: "Testing hi from Receiver?",
photo:
"https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTyCF3FunYuwPDPL9ovTOR0MQXdDJpW_ofgXA&s",
createdAt: DateTime.now().toUtc().toString(),
),
);
});
}
///Start Chat Screen
void setDRChatEvent() {
//Chat screen ready to add message list.
DRChatService.chatService.onChatLoaded = (data) {
getChatMessageList();
};
//Get message when sender send chat to receiver.
DRChatService.chatService.onMessage = (message) {
DRChatService.chatService.addSender(
DRUIChatMessage(
id: 1,
name: "kuchdarith",
photo:
"https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQRXxfn1j1vKFy8yJeBGl2AS6Dcah-lKgHofg&s",
isSender: true,
message: message,
createdAt: DateTime.now().toUtc().toString(),
),
);
//This testing receiver send back only.
testingReceiver();
};
}
//Get Chat lists
void getChatMessageList() {
chatMessages = [];
chatMessages.add(
DRUIChatMessage(
id: Random().nextInt(10000),
name: "Kuch Darith",
message: "Hi , how are you?",
createdAt: "2024-09-12T20:42:19Z",
photo:
"https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQRXxfn1j1vKFy8yJeBGl2AS6Dcah-lKgHofg&s",
isSender: true,
),
);
chatMessages.add(
DRUIChatMessage(
id: Random().nextInt(10000),
name: "Kuch Darith",
message: "Hi , how are you?",
createdAt: "2024-09-12T20:42:19Z",
photo:
"https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQRXxfn1j1vKFy8yJeBGl2AS6Dcah-lKgHofg&s",
isSender: true,
),
);
chatMessages.add(
DRUIChatMessage(
id: Random().nextInt(10000),
name: "Kuch Darith",
message: "Hi , how are you?",
createdAt: "2024-09-12T20:42:19Z",
photo:
"https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTyCF3FunYuwPDPL9ovTOR0MQXdDJpW_ofgXA&s",
isSender: false,
),
);
chatMessages.add(
DRUIChatMessage(
id: Random().nextInt(10000),
name: "Kuch Darith",
message: "Hi , how are you?",
createdAt: "2024-09-12T20:42:19Z",
photo:
"https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQRXxfn1j1vKFy8yJeBGl2AS6Dcah-lKgHofg&s",
isSender: true,
),
);
DRChatService.chatService.setChatMessageLists(chatMessages);
}
//End Chat Screen
///Start Message Screen
void setDRMessageEvent() {
WidgetsBinding.instance.addPostFrameCallback((_) {
//Delete Message.
DRChatService.chatService.onDeleteMessage = (data) {
print("Delete");
};
DRChatService.chatService.onMessageRefresh = () async {
getMessageList();
await Future.delayed(const Duration(seconds: 1));
};
DRChatService.chatService.onMessageLoadMore = () async {
await Future.delayed(const Duration(seconds: 1));
loadMoreMessageList();
};
DRChatService.chatService.onMessageLoaded = (status) {
getMessageList();
};
});
}
// load more for message list.
void loadMoreMessageList() {
users.add(
DRUIChatUser(
id: Random().nextInt(10000),
name: "Kuch Darith",
message: "Hi , how are you?",
createdAt: "2024-09-12T20:42:19Z",
photo:
"https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTyCF3FunYuwPDPL9ovTOR0MQXdDJpW_ofgXA&s",
),
);
}
//Get message list
void getMessageList() {
users = [];
users.add(
DRUIChatUser(
id: Random().nextInt(10000),
name: "Kuch Darith",
message: "Hi , how are you?",
createdAt: "2024-09-12T20:42:19Z",
photo:
"https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTyCF3FunYuwPDPL9ovTOR0MQXdDJpW_ofgXA&s",
),
);
users.add(
DRUIChatUser(
id: Random().nextInt(10000),
name: "Sok San",
message: "hahaha",
),
);
users.add(
DRUIChatUser(
id: Random().nextInt(10000),
name: "Bopha",
message: "hahaha",
photo:
"https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcS1oiHvf2LgSX3qMalIRToh28R40FJj4HA0Jg&s",
),
);
users.add(
DRUIChatUser(
id: Random().nextInt(10000),
name: "Bopha",
message: "hahaha",
photo:
"https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcS1oiHvf2LgSX3qMalIRToh28R40FJj4HA0Jg&s",
),
);
users.add(
DRUIChatUser(
id: Random().nextInt(10000),
name: "Bopha",
message: "hahaha",
photo:
"https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcS1oiHvf2LgSX3qMalIRToh28R40FJj4HA0Jg&s",
),
);
users.add(
DRUIChatUser(
id: Random().nextInt(10000),
name: "Bopha",
message: "hahaha",
photo:
"https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcS1oiHvf2LgSX3qMalIRToh28R40FJj4HA0Jg&s",
),
);
users.add(
DRUIChatUser(
id: Random().nextInt(10000),
name: "Bopha",
message: "hahaha",
photo:
"https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcS1oiHvf2LgSX3qMalIRToh28R40FJj4HA0Jg&s",
),
);
users.add(
DRUIChatUser(
id: Random().nextInt(10000),
name: "Bopha",
message: "hahaha",
photo:
"https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcS1oiHvf2LgSX3qMalIRToh28R40FJj4HA0Jg&s",
),
);
users.add(
DRUIChatUser(
id: Random().nextInt(10000),
name: "Bopha",
message: "hahaha",
photo:
"https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcS1oiHvf2LgSX3qMalIRToh28R40FJj4HA0Jg&s",
),
);
users.add(
DRUIChatUser(
id: Random().nextInt(10000),
name: "Bopha",
message: "hahaha",
photo:
"https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcS1oiHvf2LgSX3qMalIRToh28R40FJj4HA0Jg&s",
),
);
users.add(
DRUIChatUser(
id: Random().nextInt(10000),
name: "Bopha",
message: "hahaha",
photo:
"https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcS1oiHvf2LgSX3qMalIRToh28R40FJj4HA0Jg&s",
),
);
DRChatService.chatService.setMessageLists(users);
}
function #
use this function to init chat bubble icon.
DRUIChatBubble.initChatBubble(
context,
backgroundColor: Colors.green,
delay: const Duration(seconds: 2), // Optional delay before showing
);
use for add message as receiver to chat
DRChatService.chatService.addReceiver(
DRUIChatMessage(
id: 1,
name: "kuchdarith",
isSender: false,
message: "Testing hi from Receiver?",
photo:
"https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTyCF3FunYuwPDPL9ovTOR0MQXdDJpW_ofgXA&s",
createdAt: DateTime.now().toUtc().toString(),
),
);
use for add message as sender to chat
DRChatService.chatService.addSender(
DRUIChatMessage(
id: 1,
name: "kuchdarith",
isSender: false,
message: "Testing hi from Receiver?",
photo:
"https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTyCF3FunYuwPDPL9ovTOR0MQXdDJpW_ofgXA&s",
createdAt: DateTime.now().toUtc().toString(),
),
);
use for set item to message chat screen
DRChatService.chatService.setChatMessageLists(chatMessages);
use for set item to message screen
DRChatService.chatService.setMessageLists(users);
Event Message Screen #
use fo callback when user delele messages.
DRChatService.chatService.onDeleteMessage = (data) {
print("Delete");
};
use fo callback when user refrsh messages.
DRChatService.chatService.onMessageRefresh = (data) {
print("Delete");
};
use fo callback when user refrsh messages.
DRChatService.chatService.onMessageRefresh = () async {
};
use fo callback when user load more messages.
DRChatService.chatService.onMessageLoadMore = () async {
};
use fo callback when massage screen ready loaded allow add message list.
DRChatService.chatService.onMessageLoaded = (status) async {
};
Event for Chat Screen #
use fo callback when chat screen ready loaded allow add chat list.
DRChatService.chatService.onChatLoaded = (data) async {
};
use fo callback when user send message chat to receiver.
DRChatService.chatService.onMessage = (message) async {
};
Hello everyone π
If you want to support me, feel free to do so.
Thanks
============================================
αα½ααααΈ α’αααααΆααα’ααααααΆπ
ααΎβα’αααβα ααβααΆααααβαααα»α ααΌαβααααΎβαααβααααΈ ,
ααΌαα’ααα»α
