add client chat page & chat overlay window

This commit is contained in:
csf
2022-03-03 14:58:57 +08:00
parent b106ed5717
commit e9f8fd1175
8 changed files with 351 additions and 66 deletions

View File

@@ -1,5 +1,44 @@
import 'package:dash_chat/dash_chat.dart';
import 'package:flutter/material.dart';
import 'package:flutter_hbb/pages/chat_page.dart';
import 'model.dart';
import 'native_model.dart';
class ChatModel with ChangeNotifier {
final List<ChatMessage> _messages = [];
final ChatUser me = ChatUser(
name:"me",
);
get messages => _messages;
receive(String text){
if (text.isEmpty) return;
// first message show overlay icon
if (iconOverlayEntry == null){
showChatIconOverlay();
}
_messages.add(ChatMessage(text: text, user: ChatUser(
name:FFI.ffiModel.pi.username,
uid: FFI.getId(),
)));
notifyListeners();
}
send(ChatMessage message){
_messages.add(message);
if(message.text != null && message.text!.isNotEmpty){
PlatformFFI.setByName("chat",message.text!);
}
notifyListeners();
}
release(){
hideChatIconOverlay();
hideChatWindowOverlay();
_messages.clear();
notifyListeners();
}
}