merge-requests/103/head
Aamir Muhammad 3 years ago
parent 6b36be58b9
commit 76239d0077

@ -38,8 +38,10 @@ class SingleUserChatModel {
String? contantNo;
int? currentUserId;
String? currentUserName;
String? currentUserEmail;
int? targetUserId;
String? targetUserName;
String? targetUserEmail;
String? encryptedTargetUserId;
String? encryptedTargetUserName;
int? chatEventId;

@ -330,8 +330,11 @@ class ChatProviderModel with ChangeNotifier, DiagnosticableTreeMixin {
temp = getSingleUserChatModel(jsonEncode(msg));
data.first.targetUserId = temp.first.currentUserId;
data.first.targetUserName = temp.first.currentUserName;
data.first.targetUserEmail = temp.first.currentUserEmail;
data.first.currentUserId = temp.first.targetUserId;
data.first.currentUserName = temp.first.targetUserName;
data.first.currentUserEmail = temp.first.targetUserEmail;
if (data.first.fileTypeId == 12 || data.first.fileTypeId == 4 || data.first.fileTypeId == 3) {
data.first.image = await ChatApiClient().downloadURL(fileName: data.first.contant!, fileTypeDescription: data.first.fileTypeResponse!.fileTypeDescription ?? "image/jpg");
}
@ -349,21 +352,24 @@ class ChatProviderModel with ChangeNotifier, DiagnosticableTreeMixin {
if (searchedChats != null) {
dynamic contain = searchedChats!.where((ChatUser element) => element.id == data.first.currentUserId);
if (contain.isEmpty) {
List<String> emails = [];
emails.add(await EmailImageEncryption().encrypt(val: data.first.currentUserEmail!));
List<ChatUserImageModel> chatImages = await ChatApiClient().getUsersImages(encryptedEmails: emails);
searchedChats!.add(
ChatUser(
id: data.first.currentUserId,
userName: data.first.currentUserName,
unreadMessageCount: 0,
isImageLoading: false,
image: "",
isImageLoaded: true,
userStatus: 1,
isTyping: false,
userLocalDownlaodedImage: null),
id: data.first.currentUserId,
userName: data.first.currentUserName,
unreadMessageCount: 0,
isImageLoading: false,
image: chatImages!.first.profilePicture ?? "",
isImageLoaded: true,
userStatus: 1,
isTyping: false,
userLocalDownlaodedImage: await downloadImageLocal(chatImages.first.profilePicture, data.first.currentUserId.toString()),
),
);
}
}
setMsgTune();
userChatHistory.insert(0, data.first);
@ -526,21 +532,25 @@ class ChatProviderModel with ChangeNotifier, DiagnosticableTreeMixin {
await chatHubConnection.invoke("AddChatUserAsync", args: <Object>[json.decode(chatData)]);
}
void sendChatMessage(int targetUserId, int userStatus, String targetUserName, BuildContext context) async {
void sendChatMessage(BuildContext context, {required int targetUserId, required int userStatus, required String userEmail, required String targetUserName}) async {
dynamic contain = searchedChats!.where((ChatUser element) => element.id == targetUserId);
if (contain.isEmpty) {
List<String> emails = [];
emails.add(await EmailImageEncryption().encrypt(val: userEmail));
List<ChatUserImageModel> chatImages = await ChatApiClient().getUsersImages(encryptedEmails: emails);
searchedChats!.add(
ChatUser(
id: targetUserId,
userName: targetUserName,
unreadMessageCount: 0,
email: userEmail,
isImageLoading: false,
image: "",
image: chatImages.first.profilePicture ?? "",
isImageLoaded: true,
isTyping: false,
isFav: false,
userStatus: userStatus,
userLocalDownlaodedImage: null,
userLocalDownlaodedImage: await downloadImageLocal(chatImages.first.profilePicture, targetUserId.toString()),
),
);
notifyListeners();

@ -223,7 +223,11 @@ class _ChatDetailScreenState extends State<ChatDetailScreen> {
),
).paddingOnly(right: 25),
SvgPicture.asset("assets/icons/chat/chat_send_icon.svg", height: 26, width: 26).onPress(
() => m.sendChatMessage(params!.chatUser!.id!, params!.chatUser!.userStatus ?? 0, params!.chatUser!.userName!, context),
() => m.sendChatMessage(context,
targetUserId: params!.chatUser!.id!,
userStatus: params!.chatUser!.userStatus ?? 0,
userEmail: params!.chatUser!.email!,
targetUserName: params!.chatUser!.userName!),
),
],
),

@ -38,23 +38,22 @@ class _ChatHomeState extends State<ChatHome> {
data.clearAll();
}
// void fetchAgain() {
// print("Fetch Triggered");
// if (chatHubConnection.state != HubConnectionState.Connected) {
// data.getUserAutoLoginToken().whenComplete(() async {
// await data.buildHubConnection();
// data.getUserRecentChats();
// });
// return;
// }
// if (data.searchedChats == null || data.searchedChats!.isEmpty) {
// data.getUserRecentChats();
// }
// }
void fetchAgain() {
if (chatHubConnection.state != HubConnectionState.Connected) {
data.getUserAutoLoginToken().whenComplete(() async {
await data.buildHubConnection();
data.getUserRecentChats();
});
return;
}
if (data.searchedChats == null || data.searchedChats!.isEmpty) {
data.getUserRecentChats();
}
}
@override
Widget build(BuildContext context) {
// fetchAgain();
fetchAgain();
return Scaffold(
backgroundColor: MyColors.white,
appBar: AppBarWidget(context, title: LocaleKeys.chat.tr(), showHomeButton: true),

@ -58,7 +58,7 @@ class _DashboardScreenState extends State<DashboardScreen> {
data = Provider.of<DashboardProviderModel>(context, listen: false);
marathonProvider = Provider.of<MarathonProvider>(context, listen: false);
cProvider = Provider.of<ChatProviderModel>(context, listen: false);
_bHubCon();
_onRefresh();
});
}
@ -80,6 +80,7 @@ class _DashboardScreenState extends State<DashboardScreen> {
void _onRefresh() async {
data.initProvider();
_bHubCon();
// data.getITGNotification().then((value) {
// print("--------------------detail_1-----------------");
// print(value!.result!.data!.notificationMasterId);

Loading…
Cancel
Save