Chat Fixes

merge-requests/107/head
Aamir Muhammad 3 years ago
parent cf87a6da05
commit 9f91f1e83c

@ -371,7 +371,11 @@ class ChatProviderModel with ChangeNotifier, DiagnosticableTreeMixin {
} }
} }
setMsgTune(); setMsgTune();
userChatHistory.insert(0, data.first); if (isChatScreenActive) {
if (data.first.targetUserId == AppState().chatDetails!.response!.id) {
userChatHistory.insert(0, data.first);
}
}
if (searchedChats != null && !isChatScreenActive) { if (searchedChats != null && !isChatScreenActive) {
for (ChatUser user in searchedChats!) { for (ChatUser user in searchedChats!) {
@ -868,7 +872,6 @@ class ChatProviderModel with ChangeNotifier, DiagnosticableTreeMixin {
void onNewChatConversion(List<Object?>? params) { void onNewChatConversion(List<Object?>? params) {
dynamic items = params!.toList(); dynamic items = params!.toList();
logger.d(items);
chatUConvCounter = items[0]["singleChatCount"] ?? 0; chatUConvCounter = items[0]["singleChatCount"] ?? 0;
notifyListeners(); notifyListeners();
} }

@ -101,15 +101,22 @@ class ChatBubble extends StatelessWidget {
], ],
), ),
), ),
).paddingOnly(right: 5, bottom: 7), ).paddingOnly(bottom: 7),
if (fileTypeID == 12 || fileTypeID == 4 || fileTypeID == 3) if (fileTypeID == 12 || fileTypeID == 4 || fileTypeID == 3)
showImage(isReplyPreview: false, fileName: cItem.contant!, fileTypeDescription: cItem.fileTypeResponse!.fileTypeDescription).paddingOnly(right: 5).onPress(() { ClipRRect(
showDialog( borderRadius: BorderRadius.circular(5.0),
context: context, child: SizedBox(
anchorPoint: screenOffset, height: 140,
builder: (BuildContext context) => ChatImagePreviewScreen(imgTitle: cItem.contant!, img: cItem.image!), width: 227,
); child: showImage(isReplyPreview: false, fileName: cItem.contant!, fileTypeDescription: cItem.fileTypeResponse!.fileTypeDescription).onPress(() {
}) showDialog(
context: context,
anchorPoint: screenOffset,
builder: (BuildContext context) => ChatImagePreviewScreen(imgTitle: cItem.contant!, img: cItem.image!),
);
}),
),
).paddingOnly(bottom: 4)
else else
Row( Row(
children: [ children: [
@ -132,12 +139,12 @@ class ChatBubble extends StatelessWidget {
), ),
), ),
], ],
).paddingOnly(top: 11, left: 13, right: 7, bottom: 5).objectContainerView(disablePadding: true).paddingOnly(left: MediaQuery.of(context).size.width * 0.3); ).paddingOnly(top: 11, left: 13, right: 13, bottom: 5).objectContainerView(disablePadding: true).paddingOnly(left: MediaQuery.of(context).size.width * 0.3);
} }
Widget receiptUser(BuildContext context) { Widget receiptUser(BuildContext context) {
return Container( return Container(
padding: const EdgeInsets.only(top: 11, left: 13, right: 7, bottom: 5), padding: const EdgeInsets.only(top: 11, left: 13, right: 13, bottom: 5),
decoration: BoxDecoration( decoration: BoxDecoration(
borderRadius: BorderRadius.circular(10), borderRadius: BorderRadius.circular(10),
gradient: const LinearGradient( gradient: const LinearGradient(
@ -190,15 +197,22 @@ class ChatBubble extends StatelessWidget {
], ],
), ),
), ),
).paddingOnly(right: 5, bottom: 7), ).paddingOnly(bottom: 7),
if (fileTypeID == 12 || fileTypeID == 4 || fileTypeID == 3) if (fileTypeID == 12 || fileTypeID == 4 || fileTypeID == 3)
showImage(isReplyPreview: false, fileName: cItem.contant ?? "", fileTypeDescription: cItem.fileTypeResponse!.fileTypeDescription ?? "image/jpg").paddingOnly(right: 5).onPress(() { ClipRRect(
showDialog( borderRadius: BorderRadius.circular(5.0),
context: context, child: SizedBox(
anchorPoint: screenOffset, height: 140,
builder: (BuildContext context) => ChatImagePreviewScreen(imgTitle: cItem.contant ?? "", img: cItem.image!), width: 227,
); child: showImage(isReplyPreview: false, fileName: cItem.contant ?? "", fileTypeDescription: cItem.fileTypeResponse!.fileTypeDescription ?? "image/jpg").onPress(() {
}) showDialog(
context: context,
anchorPoint: screenOffset,
builder: (BuildContext context) => ChatImagePreviewScreen(imgTitle: cItem.contant ?? "", img: cItem.image!),
);
}),
),
).paddingOnly(bottom: 4)
else else
Row( Row(
children: [ children: [
@ -212,7 +226,9 @@ class ChatBubble extends StatelessWidget {
), ),
Align( Align(
alignment: Alignment.centerRight, alignment: Alignment.centerRight,
child: dateTime.toText10(color: Colors.white.withOpacity(.71),), child: dateTime.toText10(
color: Colors.white.withOpacity(.71),
),
), ),
], ],
), ),
@ -220,12 +236,15 @@ class ChatBubble extends StatelessWidget {
} }
Widget showImage({required bool isReplyPreview, required String fileName, required String fileTypeDescription}) { Widget showImage({required bool isReplyPreview, required String fileName, required String fileTypeDescription}) {
if (isReplyPreview) {}
if (cItem.isImageLoaded! && cItem.image != null) { if (cItem.isImageLoaded! && cItem.image != null) {
return Image.memory( return Image.memory(
cItem.image!, cItem.image!,
height: isReplyPreview ? 32 : 140, height: isReplyPreview ? 32 : 140,
width: isReplyPreview ? 32 : 227, width: isReplyPreview ? 32 : 227,
fit: BoxFit.cover, fit: BoxFit.cover,
alignment: Alignment.center,
); );
} else { } else {
return FutureBuilder<Uint8List>( return FutureBuilder<Uint8List>(
@ -233,7 +252,7 @@ class ChatBubble extends StatelessWidget {
builder: (BuildContext context, AsyncSnapshot<dynamic> snapshot) { builder: (BuildContext context, AsyncSnapshot<dynamic> snapshot) {
if (snapshot.connectionState != ConnectionState.waiting) { if (snapshot.connectionState != ConnectionState.waiting) {
if (snapshot.data == null) { if (snapshot.data == null) {
return SizedBox(); return const SizedBox();
} else { } else {
cItem.image = snapshot.data; cItem.image = snapshot.data;
cItem.isImageLoaded = true; cItem.isImageLoaded = true;
@ -242,6 +261,7 @@ class ChatBubble extends StatelessWidget {
height: isReplyPreview ? 32 : 140, height: isReplyPreview ? 32 : 140,
width: isReplyPreview ? 32 : 227, width: isReplyPreview ? 32 : 227,
fit: BoxFit.cover, fit: BoxFit.cover,
alignment: Alignment.center,
); );
} }
} else { } else {

Loading…
Cancel
Save