mohemm_HMG_flutter_upgrade
haroon amjad 2 years ago
parent 39d9136299
commit 6811015a0d

@ -90,7 +90,7 @@ class AppState {
String get getHuaweiPushToken => _huaweiPushToken; String get getHuaweiPushToken => _huaweiPushToken;
final PostParamsModel _postParamsInitConfig = PostParamsModel(channel: 33, versionID: 5.2, mobileType: Platform.isAndroid ? "android" : "ios"); final PostParamsModel _postParamsInitConfig = PostParamsModel(channel: 33, versionID: 5.3, mobileType: Platform.isAndroid ? "android" : "ios");
void setPostParamsInitConfig() { void setPostParamsInitConfig() {
isAuthenticated = false; isAuthenticated = false;

@ -143,7 +143,7 @@ class _ChatDetailScreenState extends State<ChatDetailScreen> {
dateTime: m.dateFormte(m.userChatHistory[i].createdDate!), dateTime: m.dateFormte(m.userChatHistory[i].createdDate!),
cItem: m.userChatHistory[i], cItem: m.userChatHistory[i],
), ),
onRightSwipe: () { onRightSwipe: (val) {
m.chatReply( m.chatReply(
m.userChatHistory[i], m.userChatHistory[i],
); );

@ -58,11 +58,11 @@ class _GroupChatDetailScreenState extends State<GroupChatDetailScreen> {
data.paginationVal = data.paginationVal + 10; data.paginationVal = data.paginationVal + 10;
if (params != null) { if (params != null) {
data.getGroupChatHistory(params!.groupChatDetails! data.getGroupChatHistory(params!.groupChatDetails!
// senderUID: AppState().chatDetails!.response!.id!.toInt(), // senderUID: AppState().chatDetails!.response!.id!.toInt(),
// receiverUID: params!.groupChatDetails!.groupId!, // receiverUID: params!.groupChatDetails!.groupId!,
// loadMore: true, // loadMore: true,
// isNewChat: false, // isNewChat: false,
); );
} }
} }
await Future.delayed( await Future.delayed(
@ -83,13 +83,12 @@ class _GroupChatDetailScreenState extends State<GroupChatDetailScreen> {
data = Provider.of<ChatProviderModel>(context, listen: false); data = Provider.of<ChatProviderModel>(context, listen: false);
// callPro = Provider.of<ChatCallProvider>(context, listen: false); // callPro = Provider.of<ChatCallProvider>(context, listen: false);
if (params != null) { if (params != null) {
data.getGroupChatHistory( data.getGroupChatHistory(params!.groupChatDetails!
params!.groupChatDetails! // senderUID: AppState().chatDetails!.response!.id!.toInt(),
// senderUID: AppState().chatDetails!.response!.id!.toInt(), // receiverUID: params!.groupChatHistory!.groupId!,
// receiverUID: params!.groupChatHistory!.groupId!, // loadMore: false,
// loadMore: false, // isNewChat: params!.isNewChat!,
// isNewChat: params!.isNewChat!, );
);
data.initAudio(receiverId: params!.groupChatDetails!.groupId!); data.initAudio(receiverId: params!.groupChatDetails!.groupId!);
} }
@ -99,8 +98,8 @@ class _GroupChatDetailScreenState extends State<GroupChatDetailScreen> {
context, context,
title: params!.groupChatDetails!.groupName.toString().replaceAll(".", " ").capitalizeFirstofEach, title: params!.groupChatDetails!.groupName.toString().replaceAll(".", " ").capitalizeFirstofEach,
showHomeButton: false, showHomeButton: false,
// showTyping: true, // showTyping: true,
// chatUser: params!.groupChatHistory!.groupChatHistoryTargetUserList as ChatUser, // chatUser: params!.groupChatHistory!.groupChatHistoryTargetUserList as ChatUser,
actions: [ actions: [
// SvgPicture.asset("assets/icons/chat/call.svg", width: 21, height: 23).onPress(() { // SvgPicture.asset("assets/icons/chat/call.svg", width: 21, height: 23).onPress(() {
// makeCall(callType: "AUDIO"); // makeCall(callType: "AUDIO");
@ -117,224 +116,220 @@ class _GroupChatDetailScreenState extends State<GroupChatDetailScreen> {
builder: (BuildContext context, ChatProviderModel m, Widget? child) { builder: (BuildContext context, ChatProviderModel m, Widget? child) {
return (m.isLoading return (m.isLoading
? ChatHomeShimmer( ? ChatHomeShimmer(
isDetailedScreen: true, isDetailedScreen: true,
) )
: Column( : Column(
children: <Widget>[ children: <Widget>[
SmartRefresher( SmartRefresher(
enablePullDown: false, enablePullDown: false,
enablePullUp: true, enablePullUp: true,
onLoading: () { onLoading: () {
getMoreChat(); getMoreChat();
},
header: const MaterialClassicHeader(
color: MyColors.gradiantEndColor,
),
controller: _rc,
reverse: true,
child: ListView.separated(
controller: m.scrollController,
shrinkWrap: true,
physics: const BouncingScrollPhysics(),
reverse: true,
itemCount: m.groupChatHistory.length,
padding: const EdgeInsets.all(21),
separatorBuilder: (BuildContext cxt, int index) => 8.height,
itemBuilder: (BuildContext context, int i) {
return SwipeTo(
iconColor: MyColors.lightGreenColor,
child: GroupChatBubble(
dateTime: m.groupChatHistory[i].createdDate!,
cItem: m.groupChatHistory[i],
),
onRightSwipe: () {
m.groupChatReply(
m.groupChatHistory[i],
);
}, },
).onPress(() async { header: const MaterialClassicHeader(
logger.w(m.userChatHistory[i].toJson()); color: MyColors.gradiantEndColor,
if (m.userChatHistory[i].fileTypeResponse != null && m.userChatHistory[i].fileTypeId != null) { ),
if (m.userChatHistory[i].fileTypeId! == 1 || controller: _rc,
m.userChatHistory[i].fileTypeId! == 5 || reverse: true,
m.userChatHistory[i].fileTypeId! == 7 || child: ListView.separated(
m.userChatHistory[i].fileTypeId! == 6 || controller: m.scrollController,
m.userChatHistory[i].fileTypeId! == 8 shrinkWrap: true,
// || m.userChatHistory[i].fileTypeId! == 2 physics: const BouncingScrollPhysics(),
) { reverse: true,
m.getChatMedia(context, itemCount: m.groupChatHistory.length,
fileTypeName: m.userChatHistory[i].fileTypeResponse!.fileTypeName ?? "", fileTypeID: m.userChatHistory[i].fileTypeId!, fileName: m.userChatHistory[i].contant!); padding: const EdgeInsets.all(21),
} separatorBuilder: (BuildContext cxt, int index) => 8.height,
} itemBuilder: (BuildContext context, int i) {
}); return SwipeTo(
}, iconColor: MyColors.lightGreenColor,
), child: GroupChatBubble(
).expanded, dateTime: m.groupChatHistory[i].createdDate!,
if (m.isReplyMsg) cItem: m.groupChatHistory[i],
SizedBox( ),
height: 82, onRightSwipe: (val) {
child: Row( m.groupChatReply(
children: <Widget>[ m.groupChatHistory[i],
Container(height: 82, color: MyColors.textMixColor, width: 6), );
Container( },
color: MyColors.darkTextColor.withOpacity(0.10), ).onPress(() async {
padding: const EdgeInsets.only(top: 11, left: 14, bottom: 14, right: 21), logger.w(m.userChatHistory[i].toJson());
if (m.userChatHistory[i].fileTypeResponse != null && m.userChatHistory[i].fileTypeId != null) {
if (m.userChatHistory[i].fileTypeId! == 1 ||
m.userChatHistory[i].fileTypeId! == 5 ||
m.userChatHistory[i].fileTypeId! == 7 ||
m.userChatHistory[i].fileTypeId! == 6 ||
m.userChatHistory[i].fileTypeId! == 8
// || m.userChatHistory[i].fileTypeId! == 2
) {
m.getChatMedia(context,
fileTypeName: m.userChatHistory[i].fileTypeResponse!.fileTypeName ?? "", fileTypeID: m.userChatHistory[i].fileTypeId!, fileName: m.userChatHistory[i].contant!);
}
}
});
},
),
).expanded,
if (m.isReplyMsg)
SizedBox(
height: 82,
child: Row( child: Row(
children: [ children: <Widget>[
Column( Container(height: 82, color: MyColors.textMixColor, width: 6),
crossAxisAlignment: CrossAxisAlignment.start, Container(
children: [ color: MyColors.darkTextColor.withOpacity(0.10),
(AppState().chatDetails!.response!.userName == m.groupChatReplyData.first.currentUserName.toString() padding: const EdgeInsets.only(top: 11, left: 14, bottom: 14, right: 21),
? "You" child: Row(
: m.groupChatReplyData.first.currentUserName.toString().replaceAll(".", " ")) children: [
.toText14(color: MyColors.lightGreenColor), Column(
(m.groupChatReplyData.isNotEmpty ? m.groupChatReplyData.first.contant! : "").toText12(color: MyColors.grey71Color, maxLine: 2) crossAxisAlignment: CrossAxisAlignment.start,
], children: [
(AppState().chatDetails!.response!.userName == m.groupChatReplyData.first.currentUserName.toString()
? "You"
: m.groupChatReplyData.first.currentUserName.toString().replaceAll(".", " "))
.toText14(color: MyColors.lightGreenColor),
(m.groupChatReplyData.isNotEmpty ? m.groupChatReplyData.first.contant! : "").toText12(color: MyColors.grey71Color, maxLine: 2)
],
).expanded,
12.width,
if (m.isReplyMsg && m.groupChatReplyData.isNotEmpty) showReplyImage(m.groupChatReplyData, m),
12.width,
const Icon(Icons.cancel, size: 23, color: MyColors.grey7BColor).onPress(m.closeMe),
],
),
).expanded, ).expanded,
12.width,
if (m.isReplyMsg && m.groupChatReplyData.isNotEmpty) showReplyImage(m.groupChatReplyData, m),
12.width,
const Icon(Icons.cancel, size: 23, color: MyColors.grey7BColor).onPress(m.closeMe),
], ],
), ),
).expanded, ),
], if (m.isAttachmentMsg && m.sFileType == ".png" || m.sFileType == ".jpeg" || m.sFileType == ".jpg")
), SizedBox(height: 200, width: double.infinity, child: Image.file(m.selectedFile, fit: BoxFit.cover)).paddingOnly(left: 21, right: 21, top: 21),
), const Divider(height: 1, color: MyColors.lightGreyEFColor),
if (m.isAttachmentMsg && m.sFileType == ".png" || m.sFileType == ".jpeg" || m.sFileType == ".jpg") if (m.isRecoding)
SizedBox(height: 200, width: double.infinity, child: Image.file(m.selectedFile, fit: BoxFit.cover)).paddingOnly(left: 21, right: 21, top: 21), Column(
const Divider(height: 1, color: MyColors.lightGreyEFColor),
if (m.isRecoding)
Column(
children: <Widget>[
Row(
children: [
Text(m.buildTimer()).paddingAll(10),
if (m.isRecoding && m.isPlaying)
WaveBubble(
playerController: m.playerController,
isPlaying: m.playerController.playerState == PlayerState.playing,
onTap: () {},
).expanded
else
AudioWaveforms(
waveStyle: const WaveStyle(
waveColor: MyColors.lightGreenColor,
middleLineColor: Colors.transparent,
extendWaveform: true,
showBottom: true,
showTop: true,
waveThickness: 2,
showMiddleLine: false,
middleLineThickness: 0,
),
padding: const EdgeInsets.all(5),
shouldCalculateScrolledPosition: false,
margin: EdgeInsets.zero,
size: const Size(double.infinity, 30.0),
recorderController: m.recorderController,
backgroundColor: Colors.white,
).expanded,
],
),
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
const Icon(
Icons.delete_outlined,
size: 26,
color: MyColors.lightGreenColor,
).paddingAll(10).onPress(() {
m.deleteRecoding();
}),
SvgPicture.asset("assets/icons/chat/chat_send_icon.svg", height: 26, width: 26)
.onPress(
() => m.sendGroupChatMessage(context,
targetUserId: params!.groupChatDetails!.groupId!,
userStatus: 0,
userEmail: "",
targetUserName: params!.groupChatDetails!.groupName!,
userList: params!.groupChatDetails!.groupUserList!
),
)
.paddingOnly(right: 21),
],
),
],
).objectContainerView(disablePadding: true, radius: 0),
if (!m.isRecoding)
Row(
children: [
CustomAutoDirection(
onDirectionChange: (bool isRTL) => m.onDirectionChange(isRTL),
text: m.msgText,
child: TextField(
// textDirection: m.textDirection,
controller: m.message,
decoration: InputDecoration(
hintTextDirection: m.textDirection,
hintText: m.isAttachmentMsg ? m.selectedFile.path.split("/").last : LocaleKeys.typeheretoreply.tr(),
hintStyle: TextStyle(color: m.isAttachmentMsg ? MyColors.darkTextColor : MyColors.grey98Color, fontSize: 14),
border: InputBorder.none,
focusedBorder: InputBorder.none,
enabledBorder: InputBorder.none,
errorBorder: InputBorder.none,
disabledBorder: InputBorder.none,
filled: true,
fillColor: MyColors.white,
contentPadding: const EdgeInsets.only(
left: 21,
top: 20,
bottom: 20,
),
prefixIconConstraints: const BoxConstraints(),
prefixIcon: m.sFileType.isNotEmpty
? SvgPicture.asset(m.getType(m.sFileType), height: 30, width: 22, alignment: Alignment.center, fit: BoxFit.cover).paddingOnly(left: 21, right: 15)
: null,
),
onChanged: (String val) {
m.inputBoxDirection(val);
m.groupTypingInvoke(groupDetails: params!.groupChatDetails!, groupId: params!.groupChatDetails!.groupId!);
},
).expanded,
),
if (m.sFileType.isNotEmpty)
Row(
children: <Widget>[ children: <Widget>[
const Icon(Icons.cancel, size: 15, color: MyColors.redA3Color).paddingOnly(right: 5), Row(
("Clear").toText11(color: MyColors.redA3Color, isUnderLine: true).paddingOnly(left: 0), children: [
Text(m.buildTimer()).paddingAll(10),
if (m.isRecoding && m.isPlaying)
WaveBubble(
playerController: m.playerController,
isPlaying: m.playerController.playerState == PlayerState.playing,
onTap: () {},
).expanded
else
AudioWaveforms(
waveStyle: const WaveStyle(
waveColor: MyColors.lightGreenColor,
middleLineColor: Colors.transparent,
extendWaveform: true,
showBottom: true,
showTop: true,
waveThickness: 2,
showMiddleLine: false,
middleLineThickness: 0,
),
padding: const EdgeInsets.all(5),
shouldCalculateScrolledPosition: false,
margin: EdgeInsets.zero,
size: const Size(double.infinity, 30.0),
recorderController: m.recorderController,
backgroundColor: Colors.white,
).expanded,
],
),
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
const Icon(
Icons.delete_outlined,
size: 26,
color: MyColors.lightGreenColor,
).paddingAll(10).onPress(() {
m.deleteRecoding();
}),
SvgPicture.asset("assets/icons/chat/chat_send_icon.svg", height: 26, width: 26)
.onPress(
() => m.sendGroupChatMessage(context,
targetUserId: params!.groupChatDetails!.groupId!,
userStatus: 0,
userEmail: "",
targetUserName: params!.groupChatDetails!.groupName!,
userList: params!.groupChatDetails!.groupUserList!),
)
.paddingOnly(right: 21),
],
),
], ],
).onPress(() => m.removeAttachment()).paddingOnly(right: 15), ).objectContainerView(disablePadding: true, radius: 0),
if (m.sFileType.isEmpty) if (!m.isRecoding)
RotationTransition( Row(
turns: const AlwaysStoppedAnimation(45 / 360), children: [
child: const Icon(Icons.attach_file_rounded, size: 26, color: MyColors.grey3AColor).onPress( CustomAutoDirection(
() => { onDirectionChange: (bool isRTL) => m.onDirectionChange(isRTL),
m.selectImageToUpload(context) text: m.msgText,
child: TextField(
// textDirection: m.textDirection,
controller: m.message,
decoration: InputDecoration(
hintTextDirection: m.textDirection,
hintText: m.isAttachmentMsg ? m.selectedFile.path.split("/").last : LocaleKeys.typeheretoreply.tr(),
hintStyle: TextStyle(color: m.isAttachmentMsg ? MyColors.darkTextColor : MyColors.grey98Color, fontSize: 14),
border: InputBorder.none,
focusedBorder: InputBorder.none,
enabledBorder: InputBorder.none,
errorBorder: InputBorder.none,
disabledBorder: InputBorder.none,
filled: true,
fillColor: MyColors.white,
contentPadding: const EdgeInsets.only(
left: 21,
top: 20,
bottom: 20,
),
prefixIconConstraints: const BoxConstraints(),
prefixIcon: m.sFileType.isNotEmpty
? SvgPicture.asset(m.getType(m.sFileType), height: 30, width: 22, alignment: Alignment.center, fit: BoxFit.cover).paddingOnly(left: 21, right: 15)
: null,
),
onChanged: (String val) {
m.inputBoxDirection(val);
m.groupTypingInvoke(groupDetails: params!.groupChatDetails!, groupId: params!.groupChatDetails!.groupId!);
}, },
), ).expanded,
).paddingOnly(right: 15),
const Icon(
Icons.mic,
color: MyColors.lightGreenColor,
).paddingOnly(right: 15).onPress(() {
m.startRecoding(context);
}),
SvgPicture.asset("assets/icons/chat/chat_send_icon.svg", height: 26, width: 26)
.onPress(
() =>m.sendGroupChatMessage(context,
targetUserId: params!.groupChatDetails!.groupId!,
userStatus: 0,
userEmail: "",
targetUserName: params!.groupChatDetails!.groupName!,
userList: params!.groupChatDetails!.groupUserList!
), ),
) if (m.sFileType.isNotEmpty)
.paddingOnly(right: 21), Row(
children: <Widget>[
const Icon(Icons.cancel, size: 15, color: MyColors.redA3Color).paddingOnly(right: 5),
("Clear").toText11(color: MyColors.redA3Color, isUnderLine: true).paddingOnly(left: 0),
],
).onPress(() => m.removeAttachment()).paddingOnly(right: 15),
if (m.sFileType.isEmpty)
RotationTransition(
turns: const AlwaysStoppedAnimation(45 / 360),
child: const Icon(Icons.attach_file_rounded, size: 26, color: MyColors.grey3AColor).onPress(
() => {m.selectImageToUpload(context)},
),
).paddingOnly(right: 15),
const Icon(
Icons.mic,
color: MyColors.lightGreenColor,
).paddingOnly(right: 15).onPress(() {
m.startRecoding(context);
}),
SvgPicture.asset("assets/icons/chat/chat_send_icon.svg", height: 26, width: 26)
.onPress(
() => m.sendGroupChatMessage(context,
targetUserId: params!.groupChatDetails!.groupId!,
userStatus: 0,
userEmail: "",
targetUserName: params!.groupChatDetails!.groupName!,
userList: params!.groupChatDetails!.groupUserList!),
)
.paddingOnly(right: 21),
],
).objectContainerView(disablePadding: true, radius: 0),
], ],
).objectContainerView(disablePadding: true, radius: 0), ));
],
));
}, },
), ),
), ),
@ -352,11 +347,11 @@ class _GroupChatDetailScreenState extends State<GroupChatDetailScreen> {
} else { } else {
return data.first.fileTypeResponse != null && data.first.fileTypeResponse!.fileTypeName != null return data.first.fileTypeResponse != null && data.first.fileTypeResponse!.fileTypeName != null
? Container( ? Container(
width: 43, width: 43,
height: 43, height: 43,
constraints: const BoxConstraints(), constraints: const BoxConstraints(),
decoration: BoxDecoration(border: Border.all(color: MyColors.darkGrey3BColor, width: 1), borderRadius: BorderRadius.circular(10.0), color: Colors.white), decoration: BoxDecoration(border: Border.all(color: MyColors.darkGrey3BColor, width: 1), borderRadius: BorderRadius.circular(10.0), color: Colors.white),
child: SvgPicture.asset(m.getType(data.first.fileTypeResponse!.fileTypeName ?? ""), alignment: Alignment.center, fit: BoxFit.cover).paddingOnly(left: 5, right: 5, top: 5, bottom: 5)) child: SvgPicture.asset(m.getType(data.first.fileTypeResponse!.fileTypeName ?? ""), alignment: Alignment.center, fit: BoxFit.cover).paddingOnly(left: 5, right: 5, top: 5, bottom: 5))
: const SizedBox(); : const SizedBox();
} }
} }
@ -373,22 +368,22 @@ class _GroupChatDetailScreenState extends State<GroupChatDetailScreen> {
// "calltype": callType == "VIDEO" ? "Video" : "Audio", // "calltype": callType == "VIDEO" ? "Video" : "Audio",
// }; // };
logger.w(json); logger.w(json);
// CallDataModel callData = CallDataModel.fromJson(json); // CallDataModel callData = CallDataModel.fromJson(json);
// await Navigator.push( // await Navigator.push(
// context, // context,
// MaterialPageRoute( // MaterialPageRoute(
// builder: (BuildContext context) => OutGoingCall( // builder: (BuildContext context) => OutGoingCall(
// isVideoCall: callType == "VIDEO" ? true : false, // isVideoCall: callType == "VIDEO" ? true : false,
// outGoingCallData: callData, // outGoingCallData: callData,
// ), // ),
// ), // ),
// ).then((value) { // ).then((value) {
// print("then"); // print("then");
// callPro.stopListeners(); // callPro.stopListeners();
// }); // });
} }
GroupUserList getCurrentUser(int id, GroupResponse groupChatDetails) { GroupUserList getCurrentUser(int id, GroupResponse groupChatDetails) {
return groupChatDetails.groupUserList!.firstWhere((GroupUserList item) => item.id ==id); return groupChatDetails.groupUserList!.firstWhere((GroupUserList item) => item.id == id);
} }
} }

@ -21,7 +21,6 @@ class BusinessCardDialog extends StatelessWidget {
mainAxisSize: MainAxisSize.min, mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.start, mainAxisAlignment: MainAxisAlignment.start,
children: [ children: [
Row( Row(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
@ -33,9 +32,9 @@ class BusinessCardDialog extends StatelessWidget {
mainAxisAlignment: MainAxisAlignment.start, mainAxisAlignment: MainAxisAlignment.start,
children: [ children: [
Image.asset( Image.asset(
"assets/images/logos/bn_cloud_soloution.jpg", "assets/images/logos/bn_hmg_logo.png",
width: 94, width: 280,
height: 91.15, height: 120,
).paddingOnly(top: 4), ).paddingOnly(top: 4),
], ],
), ),

Loading…
Cancel
Save