chat bug fixes

design_3.0_cx_module
WaseemAbbasi22 2 weeks ago
parent e303b4e099
commit e598f3b5ad

@ -35,6 +35,7 @@ import 'model/user_chat_history_model.dart';
// import 'package:mohem_flutter_app/models/chat/get_user_login_token_model.dart' as user;
// import 'package:mohem_flutter_app/models/chat/make_user_favotire_unfavorite_chat_model.dart' as fav;
//Need to refector this remove unused code.
class ChatApiClient {
static final ChatApiClient _instance = ChatApiClient._internal();
@ -97,47 +98,17 @@ class ChatApiClient {
Future<bool> resetCountApi(int moduleCode, int referenceNumber, String? employeeNumber) async {
final Map<String, dynamic> payload = {
'moduleCode': moduleCode,
'ReferenceNumber': referenceNumber,
'moduleCode': "$moduleCode",
'ReferenceNumber': "$referenceNumber",
};
// final headers = chatAckHeaders(
// apiKey: URLs.chatApiKey,
// employeeNumber: employeeNumber.toString(),
// origin: 'http://localhost:4400',
// referer: 'http://localhost:4400/',
// userAgent: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)',
// );
final Response response = await ApiClient().postJsonForResponse(
URLs.resetMessageCount,
payload,
token: chatLoginResponse!.token,
// headers: headers,
);
// Response response = await ApiClient().postJsonForResponse(
// "${URLs.resetMessageCount}?moduleCode=$moduleCode&ReferenceNumber=$referenceNumber", {"moduleCode": moduleCode.toString(), "ReferenceNumber": referenceNumber.toString()},
// token: chatLoginResponse!.token);
return response.statusCode == 200;
}
Map<String, String> chatAckHeaders({
required String apiKey,
required String employeeNumber,
required String origin,
required String referer,
required String userAgent,
String acceptLanguage = 'en-US,en;q=0.9',
}) {
return {
'Accept': 'application/json, text/plain, */*',
'Content-Type': 'application/json',
// 'X-API-Key': apiKey,
// 'X-Employee-Number': employeeNumber,
};
}
Future<List<ChatAttachment>> viewAllDocuments(int moduleId, int referenceId) async {
Response response = await ApiClient().getJsonForResponse("${URLs.chatHubUrlApi}/attachments/conversation?referenceId=$referenceId&moduleCode=$moduleId", token: chatLoginResponse!.token);

@ -28,7 +28,7 @@ import 'helper/chat_file_picker.dart';
import 'helper/chat_file_viewer.dart';
import 'model/get_single_user_chat_list_model.dart';
import 'model/user_chat_history_model.dart';
//Need to refactor this ...
enum ChatState { idle, voiceRecordingStarted, voiceRecordingCompleted }
class ChatPage extends StatefulWidget {
@ -66,7 +66,10 @@ class _ChatPageState extends State<ChatPage> {
@override
void initState() {
super.initState();
loadChatHistory();
WidgetsBinding.instance.addPostFrameCallback((_) {
loadChatHistory();
});
playerController.addListener(() async {
// if (playerController.playerState == PlayerState.playing && playerController.maxDuration == await playerController.getDuration()) {
// await playerController.stopPlayer();
@ -99,9 +102,12 @@ class _ChatPageState extends State<ChatPage> {
? Provider.of<ServiceRequestDetailProvider>(context, listen: false).currentWorkOrder!.data!.workOrderCreatedBy!.employeeId!
: Provider.of<ServiceRequestDetailProvider>(context, listen: false).currentWorkOrder!.data!.workOrderContactPerson.first.employeeId!))
: "");
ChatProvider chatProvider = Provider.of<ChatProvider>(context, listen: false);
final chatProvider = context.read<ChatProvider>();
chatProvider.connectToHub(widget.moduleId, widget.requestId, myEmployeeId, receiver, widget.readOnly, isMounted: mounted);
bool readStatus = await chatProvider.resetCount(moduleId: widget.moduleId, referenceNo: widget.requestId, userId: context.userProvider.user?.id);
if (readStatus) {
chatProvider.chatParticipantModel?.unreadCount = 0;
}
}
@override

@ -55,6 +55,8 @@ import 'model/get_single_user_chat_list_model.dart';
import 'model/user_chat_history_model.dart';
// import 'get_single_user_chat_list_model.dart';
//Need to refactor this remove unused code.
HubConnection? chatHubConnection;
class ChatProvider with ChangeNotifier, DiagnosticableTreeMixin {
@ -386,22 +388,6 @@ class ChatProvider with ChangeNotifier, DiagnosticableTreeMixin {
}
}
// Future<bool> resetCount({ required int moduleId,
// required int referenceNo}) async {
// Response response;
// try {
// response = await ApiManager.instance.post("${URLs.resetMessageCount}?moduleCode=$moduleId&ReferenceNumber=$referenceNo", body: {});
// notifyListeners();
// if (response.statusCode == 200) {
// return true;
// }
// return false;
// } catch (error) {
// notifyListeners();
// return false;
// }
// }
void updateUserChatHistoryStatusAsync(List data) {
try {
chatHubConnection!.invoke("UpdateUserChatHistoryStatusAsync", args: [data]);

@ -1,4 +1,4 @@
import 'dart:developer';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
@ -43,8 +43,10 @@ class _ChatWidgetState extends State<ChatWidget> {
@override
void initState() {
super.initState();
Provider.of<ChatProvider>(context, listen: false).reset();
getChatToken();
WidgetsBinding.instance.addPostFrameCallback((_) {
Provider.of<ChatProvider>(context, listen: false).reset();
getChatToken();
});
}
void getChatToken() {
@ -86,11 +88,7 @@ class _ChatWidgetState extends State<ChatWidget> {
minSize: 18,
child: IconButton(
icon: const Icon(Icons.chat_bubble),
onPressed: () async {
bool readStatus = await chatProvider.resetCount(moduleId: widget.moduleId, referenceNo: widget.requestId, userId: context.userProvider.user?.id);
if (readStatus) {
chatProvider.chatParticipantModel?.unreadCount = 0;
}
onPressed: () {
Navigator.push(
context,
CupertinoPageRoute(

Loading…
Cancel
Save