update flutter uikit to 1.2.0
This commit is contained in:
parent
5cba5b30cf
commit
cf7633aa02
|
|
@ -1,4 +1,10 @@
|
|||
## 1.1.0
|
||||
## 1.2.0
|
||||
|
||||
* Fix: The issue of input area not showing, when switching from recording to keyboard, on `TIMUIKitChat`.
|
||||
* Fix: Only the first receiver can receive the merged multiple forward messages.
|
||||
* Optimize: `MessageItemBuilder` can now be used for shows on the merger message screen.
|
||||
|
||||
## 1.1.0 And 1.1.0+1
|
||||
|
||||
* Add: Supports two new languages, Japanese and Korean.
|
||||
* Add: Supports adding new other languages, apart from our default ones, including English, Chinese(Simplified and Traditional), Japanese and Korean, or modifying the translations, refers to [this documentation](https://www.tencentcloud.com/document/product/1047/52154).
|
||||
|
|
|
|||
|
|
@ -45,7 +45,7 @@
|
|||
</a>
|
||||
</p>
|
||||
|
||||
<h1 align="center">Tencent Cloud Chat UIKIt</h1>
|
||||
<h1 align="center">Tencent Cloud Chat UIKit</h1>
|
||||
|
||||
<br>
|
||||
|
||||
|
|
|
|||
|
|
@ -963,14 +963,14 @@ packages:
|
|||
name: tencent_cloud_chat_sdk
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "5.0.6"
|
||||
version: "5.0.7"
|
||||
tencent_cloud_chat_uikit:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
path: ".."
|
||||
relative: true
|
||||
source: path
|
||||
version: "1.1.0"
|
||||
version: "1.2.0"
|
||||
tencent_extended_text:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
|
@ -998,7 +998,7 @@ packages:
|
|||
name: tencent_im_base
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.0.14"
|
||||
version: "1.0.17"
|
||||
tencent_im_sdk_plugin_platform_interface:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
|
|
|||
|
|
@ -982,10 +982,10 @@ class TUIChatSeparateViewModel extends ChangeNotifier {
|
|||
lifeCycleMsg =
|
||||
await lifeCycle?.messageWillSend(messageInfoWithSender);
|
||||
if (lifeCycleMsg == null) {
|
||||
return null;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
return _sendMessage(
|
||||
_sendMessage(
|
||||
id: mergerMessageInfo.id!,
|
||||
convID: convID,
|
||||
convType: convType == 1 ? ConvType.c2c : ConvType.group,
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
// ignore_for_file: unused_import
|
||||
|
||||
import 'dart:io';
|
||||
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:package_info_plus/package_info_plus.dart';
|
||||
|
|
@ -19,9 +18,9 @@ class PermissionRequestInfo extends StatefulWidget {
|
|||
|
||||
const PermissionRequestInfo(
|
||||
{Key? key,
|
||||
required this.removeOverLay,
|
||||
required this.permissionType,
|
||||
required this.appName})
|
||||
required this.removeOverLay,
|
||||
required this.permissionType,
|
||||
required this.appName})
|
||||
: super(key: key);
|
||||
|
||||
@override
|
||||
|
|
@ -205,11 +204,11 @@ class Permissions {
|
|||
}
|
||||
|
||||
static Future<bool> checkPermission(
|
||||
BuildContext context,
|
||||
int value, [
|
||||
TUITheme? theme,
|
||||
bool isShowPermissionPage = true,
|
||||
]) async {
|
||||
BuildContext context,
|
||||
int value, [
|
||||
TUITheme? theme,
|
||||
bool isShowPermissionPage = true,
|
||||
]) async {
|
||||
final status = await Permission.byValue(value).status;
|
||||
if (status.isGranted || status.isLimited) {
|
||||
return true;
|
||||
|
|
@ -256,7 +255,11 @@ class Permissions {
|
|||
|
||||
static Future<bool?> showPermissionConfirmDialog(BuildContext context, value,
|
||||
[TUITheme? theme, bool isShowPermissionPage = true]) async {
|
||||
final platformUtils = PlatformUtils();
|
||||
// 第一次直接走系统文案
|
||||
if (!await checkPermissionSetBefore(value)) {
|
||||
await setLocalPermission(value);
|
||||
if (platformUtils.isAndroid && isShowPermissionPage) {
|
||||
showPermissionRequestInfoDialog(context, value);
|
||||
}
|
||||
return true;
|
||||
|
|
@ -280,54 +283,54 @@ class Permissions {
|
|||
builder: (context) {
|
||||
return platformUtils.isIOS
|
||||
? CupertinoAlertDialog(
|
||||
title: Text("“$appName”" +
|
||||
TIM_t_para(" 想访问您的{{option2}}", " 想访问您的$option2")(
|
||||
option2: option2)),
|
||||
content: Text(permissionText),
|
||||
actions: <Widget>[
|
||||
CupertinoDialogAction(
|
||||
child: Text(TIM_t("以后再说")),
|
||||
onPressed: closeDialog, // 关闭对话框
|
||||
),
|
||||
CupertinoDialogAction(
|
||||
child: Text(TIM_t("去开启")),
|
||||
onPressed: getPermission,
|
||||
),
|
||||
],
|
||||
)
|
||||
title: Text("“$appName”" +
|
||||
TIM_t_para(" 想访问您的{{option2}}", " 想访问您的$option2")(
|
||||
option2: option2)),
|
||||
content: Text(permissionText),
|
||||
actions: <Widget>[
|
||||
CupertinoDialogAction(
|
||||
child: Text(TIM_t("以后再说")),
|
||||
onPressed: closeDialog, // 关闭对话框
|
||||
),
|
||||
CupertinoDialogAction(
|
||||
child: Text(TIM_t("去开启")),
|
||||
onPressed: getPermission,
|
||||
),
|
||||
],
|
||||
)
|
||||
: AlertDialog(
|
||||
content: Text(permissionText),
|
||||
actions: <Widget>[
|
||||
const Divider(),
|
||||
SizedBox(
|
||||
height: 48,
|
||||
child: Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
|
||||
children: [
|
||||
Expanded(
|
||||
child: TextButton(
|
||||
child: Text(TIM_t("以后再说"),
|
||||
style: TextStyle(
|
||||
color: theme?.black ?? Colors.black,
|
||||
)),
|
||||
onPressed: closeDialog, // 关闭对话框
|
||||
),
|
||||
),
|
||||
const VerticalDivider(),
|
||||
Expanded(
|
||||
child: TextButton(
|
||||
child: Text(TIM_t("去开启"),
|
||||
style: TextStyle(
|
||||
color: theme?.black ?? Colors.black,
|
||||
)),
|
||||
onPressed: getPermission,
|
||||
),
|
||||
)
|
||||
],
|
||||
content: Text(permissionText),
|
||||
actions: <Widget>[
|
||||
const Divider(),
|
||||
SizedBox(
|
||||
height: 48,
|
||||
child: Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
|
||||
children: [
|
||||
Expanded(
|
||||
child: TextButton(
|
||||
child: Text(TIM_t("以后再说"),
|
||||
style: TextStyle(
|
||||
color: theme?.black ?? Colors.black,
|
||||
)),
|
||||
onPressed: closeDialog, // 关闭对话框
|
||||
),
|
||||
),
|
||||
const VerticalDivider(),
|
||||
Expanded(
|
||||
child: TextButton(
|
||||
child: Text(TIM_t("去开启"),
|
||||
style: TextStyle(
|
||||
color: theme?.black ?? Colors.black,
|
||||
)),
|
||||
onPressed: getPermission,
|
||||
),
|
||||
)
|
||||
],
|
||||
);
|
||||
),
|
||||
)
|
||||
],
|
||||
);
|
||||
},
|
||||
);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -520,6 +520,7 @@ class _TIMUIKItHistoryMessageListItemState
|
|||
)!;
|
||||
}
|
||||
return TIMUIKitMergerElem(
|
||||
messageItemBuilder: messageItemBuilder,
|
||||
model: model,
|
||||
isShowJump: isShowJump,
|
||||
clearJump: clearJump,
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ import 'dart:math';
|
|||
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:tencent_cloud_chat_uikit/ui/utils/permission.dart';
|
||||
import 'package:tencent_open_file/tencent_open_file.dart';
|
||||
import 'package:package_info_plus/package_info_plus.dart';
|
||||
import 'package:permission_handler/permission_handler.dart';
|
||||
|
|
@ -15,10 +16,7 @@ import 'package:tencent_cloud_chat_uikit/base_widgets/tim_ui_kit_state.dart';
|
|||
import 'package:tencent_cloud_chat_uikit/business_logic/separate_models/tui_chat_separate_view_model.dart';
|
||||
import 'package:tencent_cloud_chat_uikit/business_logic/view_models/tui_chat_global_model.dart';
|
||||
import 'package:tencent_cloud_chat_uikit/data_services/services_locatar.dart';
|
||||
|
||||
import 'package:tencent_cloud_chat_uikit/ui/utils/permission.dart';
|
||||
import 'package:tencent_cloud_chat_uikit/ui/utils/platform.dart';
|
||||
|
||||
import 'package:tencent_cloud_chat_uikit/ui/views/TIMUIKitChat/TIMUIKitMessageItem/TIMUIKitMessageReaction/tim_uikit_message_reaction_wrapper.dart';
|
||||
import 'package:tencent_cloud_chat_uikit/ui/views/TIMUIKitChat/TIMUIKitMessageItem/tim_uikit_chat_file_icon.dart';
|
||||
import 'package:tencent_cloud_chat_uikit/ui/widgets/textSize.dart';
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ import 'dart:async';
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:tencent_cloud_chat_uikit/base_widgets/tim_ui_kit_state.dart';
|
||||
import 'package:tencent_cloud_chat_uikit/business_logic/separate_models/tui_chat_separate_view_model.dart';
|
||||
import 'package:tencent_cloud_chat_uikit/ui/views/TIMUIKitChat/TIMUIKItMessageList/tim_uikit_chat_history_message_list_item.dart';
|
||||
|
||||
|
||||
import 'package:tencent_cloud_chat_uikit/ui/widgets/merger_message_screen.dart';
|
||||
|
|
@ -21,6 +22,7 @@ class TIMUIKitMergerElem extends StatefulWidget {
|
|||
final V2TimMessage message;
|
||||
final bool? isShowMessageReaction;
|
||||
final TUIChatSeparateViewModel model;
|
||||
final MessageItemBuilder? messageItemBuilder;
|
||||
|
||||
const TIMUIKitMergerElem(
|
||||
{Key? key,
|
||||
|
|
@ -31,7 +33,7 @@ class TIMUIKitMergerElem extends StatefulWidget {
|
|||
this.isShowMessageReaction,
|
||||
required this.messageID,
|
||||
required this.isShowJump,
|
||||
this.clearJump})
|
||||
this.clearJump, this.messageItemBuilder})
|
||||
: super(key: key);
|
||||
|
||||
@override
|
||||
|
|
@ -71,6 +73,7 @@ class TIMUIKitMergerElemState extends TIMUIKitState<TIMUIKitMergerElem> {
|
|||
context,
|
||||
MaterialPageRoute(
|
||||
builder: (context) => MergerMessageScreen(
|
||||
messageItemBuilder: widget.messageItemBuilder,
|
||||
model: model, msgID: widget.messageID),
|
||||
));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -795,8 +795,8 @@ class _InputTextFieldState extends TIMUIKitState<TIMUIKitInputTextField> {
|
|||
forbiddenText == null)
|
||||
InkWell(
|
||||
onTap: () async {
|
||||
showKeyboard = showSendSoundText;
|
||||
if (showSendSoundText) {
|
||||
showKeyboard = true;
|
||||
focusNode.requestFocus();
|
||||
}
|
||||
if (await Permissions.checkPermission(
|
||||
|
|
@ -806,7 +806,6 @@ class _InputTextFieldState extends TIMUIKitState<TIMUIKitInputTextField> {
|
|||
)) {
|
||||
setState(() {
|
||||
showEmojiPanel = false;
|
||||
showKeyboard = false;
|
||||
showMore = false;
|
||||
showSendSoundText = !showSendSoundText;
|
||||
});
|
||||
|
|
|
|||
|
|
@ -10,12 +10,10 @@ import 'package:tencent_cloud_chat_uikit/business_logic/life_cycle/chat_life_cyc
|
|||
import 'package:tencent_cloud_chat_uikit/business_logic/listener_model/tui_group_listener_model.dart';
|
||||
import 'package:tencent_cloud_chat_uikit/business_logic/separate_models/tui_chat_separate_view_model.dart';
|
||||
import 'package:tencent_cloud_chat_uikit/business_logic/view_models/tui_chat_global_model.dart';
|
||||
|
||||
import 'package:tencent_cloud_chat_uikit/data_services/services_locatar.dart';
|
||||
import 'package:tencent_cloud_chat_uikit/tencent_cloud_chat_uikit.dart';
|
||||
import 'package:tencent_cloud_chat_uikit/ui/constants/history_message_constant.dart';
|
||||
import 'package:tencent_cloud_chat_uikit/ui/controller/tim_uikit_chat_controller.dart';
|
||||
|
||||
import 'package:tencent_cloud_chat_uikit/ui/utils/frame.dart';
|
||||
import 'package:tencent_cloud_chat_uikit/ui/utils/optimize_utils.dart';
|
||||
import 'package:tencent_cloud_chat_uikit/ui/views/TIMUIKitChat/tim_uikit_multi_select_panel.dart';
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ import 'package:flutter/material.dart';
|
|||
import 'package:loading_animation_widget/loading_animation_widget.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:tencent_cloud_chat_uikit/base_widgets/tim_ui_kit_state.dart';
|
||||
import 'package:tencent_cloud_chat_uikit/ui/views/TIMUIKitChat/TIMUIKItMessageList/tim_uikit_chat_history_message_list_item.dart';
|
||||
import 'package:tencent_im_base/tencent_im_base.dart';
|
||||
import 'package:tencent_cloud_chat_uikit/business_logic/separate_models/tui_chat_separate_view_model.dart';
|
||||
import 'package:tencent_cloud_chat_uikit/data_services/message/message_services.dart';
|
||||
|
|
@ -18,9 +19,13 @@ import 'package:tencent_cloud_chat_uikit/base_widgets/tim_ui_kit_base.dart';
|
|||
class MergerMessageScreen extends StatefulWidget {
|
||||
final TUIChatSeparateViewModel model;
|
||||
final String msgID;
|
||||
final MessageItemBuilder? messageItemBuilder;
|
||||
|
||||
const MergerMessageScreen(
|
||||
{Key? key, required this.model, required this.msgID})
|
||||
{Key? key,
|
||||
required this.model,
|
||||
required this.msgID,
|
||||
this.messageItemBuilder})
|
||||
: super(key: key);
|
||||
|
||||
@override
|
||||
|
|
@ -39,7 +44,8 @@ class MergerMessageScreenState extends TIMUIKitState<MergerMessageScreen> {
|
|||
}
|
||||
|
||||
void initMessageList() async {
|
||||
final mergerMessageList = await _messageService.downloadMergerMessage(msgID: widget.msgID);
|
||||
final mergerMessageList =
|
||||
await _messageService.downloadMergerMessage(msgID: widget.msgID);
|
||||
setState(() {
|
||||
messageList = mergerMessageList ?? [];
|
||||
});
|
||||
|
|
@ -51,7 +57,7 @@ class MergerMessageScreenState extends TIMUIKitState<MergerMessageScreen> {
|
|||
if (hasCustomData) {
|
||||
try {
|
||||
final CloudCustomData messageCloudCustomData =
|
||||
CloudCustomData.fromJson(json.decode(message.cloudCustomData!));
|
||||
CloudCustomData.fromJson(json.decode(message.cloudCustomData!));
|
||||
if (messageCloudCustomData.messageReply != null) {
|
||||
MessageRepliedData.fromJson(messageCloudCustomData.messageReply!);
|
||||
return true;
|
||||
|
|
@ -70,8 +76,22 @@ class MergerMessageScreenState extends TIMUIKitState<MergerMessageScreen> {
|
|||
|
||||
switch (type) {
|
||||
case MessageElemType.V2TIM_ELEM_TYPE_CUSTOM:
|
||||
if (widget.messageItemBuilder?.customMessageItemBuilder != null) {
|
||||
return widget.messageItemBuilder!.customMessageItemBuilder!(
|
||||
message,
|
||||
false,
|
||||
() {},
|
||||
)!;
|
||||
}
|
||||
return Text(TIM_t("[自定义]"));
|
||||
case MessageElemType.V2TIM_ELEM_TYPE_SOUND:
|
||||
if (widget.messageItemBuilder?.soundMessageItemBuilder != null) {
|
||||
return widget.messageItemBuilder!.soundMessageItemBuilder!(
|
||||
message,
|
||||
false,
|
||||
() {},
|
||||
)!;
|
||||
}
|
||||
return TIMUIKitSoundElem(
|
||||
chatModel: widget.model,
|
||||
isShowMessageReaction: false,
|
||||
|
|
@ -82,6 +102,13 @@ class MergerMessageScreenState extends TIMUIKitState<MergerMessageScreen> {
|
|||
localCustomInt: message.localCustomInt);
|
||||
case MessageElemType.V2TIM_ELEM_TYPE_TEXT:
|
||||
if (isReplyMessage(message)) {
|
||||
if (widget.messageItemBuilder?.textReplyMessageItemBuilder != null) {
|
||||
return widget.messageItemBuilder!.textReplyMessageItemBuilder!(
|
||||
message,
|
||||
false,
|
||||
() {},
|
||||
)!;
|
||||
}
|
||||
return TIMUIKitReplyElem(
|
||||
isShowMessageReaction: false,
|
||||
chatModel: widget.model,
|
||||
|
|
@ -89,14 +116,29 @@ class MergerMessageScreenState extends TIMUIKitState<MergerMessageScreen> {
|
|||
scrollToIndex: () {},
|
||||
clearJump: () {});
|
||||
}
|
||||
|
||||
return Text(
|
||||
message.textElem!.text!,
|
||||
softWrap: true,
|
||||
style: const TextStyle(fontSize: 16),
|
||||
if (widget.messageItemBuilder?.textMessageItemBuilder != null) {
|
||||
return widget.messageItemBuilder!.textMessageItemBuilder!(
|
||||
message,
|
||||
false,
|
||||
() {},
|
||||
)!;
|
||||
}
|
||||
return TIMUIKitTextElem(
|
||||
chatModel: widget.model,
|
||||
message: message,
|
||||
isFromSelf: message.isSelf ?? false,
|
||||
clearJump: (){},
|
||||
isShowJump: false,
|
||||
isShowMessageReaction: false,
|
||||
);
|
||||
// return Text(message.textElem!.text!);
|
||||
case MessageElemType.V2TIM_ELEM_TYPE_FACE:
|
||||
if (widget.messageItemBuilder?.faceMessageItemBuilder != null) {
|
||||
return widget.messageItemBuilder!.faceMessageItemBuilder!(
|
||||
message,
|
||||
false,
|
||||
() {},
|
||||
)!;
|
||||
}
|
||||
return TIMUIKitFaceElem(
|
||||
model: widget.model,
|
||||
isShowJump: false,
|
||||
|
|
@ -104,6 +146,13 @@ class MergerMessageScreenState extends TIMUIKitState<MergerMessageScreen> {
|
|||
path: message.faceElem?.data ?? "",
|
||||
message: message);
|
||||
case MessageElemType.V2TIM_ELEM_TYPE_FILE:
|
||||
if (widget.messageItemBuilder?.fileMessageItemBuilder != null) {
|
||||
return widget.messageItemBuilder!.fileMessageItemBuilder!(
|
||||
message,
|
||||
false,
|
||||
() {},
|
||||
)!;
|
||||
}
|
||||
return TIMUIKitFileElem(
|
||||
chatModel: widget.model,
|
||||
isShowMessageReaction: false,
|
||||
|
|
@ -113,6 +162,13 @@ class MergerMessageScreenState extends TIMUIKitState<MergerMessageScreen> {
|
|||
isSelf: isFromSelf,
|
||||
isShowJump: false);
|
||||
case MessageElemType.V2TIM_ELEM_TYPE_IMAGE:
|
||||
if (widget.messageItemBuilder?.imageMessageItemBuilder != null) {
|
||||
return widget.messageItemBuilder!.imageMessageItemBuilder!(
|
||||
message,
|
||||
false,
|
||||
() {},
|
||||
)!;
|
||||
}
|
||||
return TIMUIKitImageElem(
|
||||
chatModel: widget.model,
|
||||
isShowMessageReaction: false,
|
||||
|
|
@ -121,12 +177,34 @@ class MergerMessageScreenState extends TIMUIKitState<MergerMessageScreen> {
|
|||
key: Key("${message.seq}_${message.timestamp}"),
|
||||
);
|
||||
case MessageElemType.V2TIM_ELEM_TYPE_VIDEO:
|
||||
if (widget.messageItemBuilder?.videoMessageItemBuilder != null) {
|
||||
return widget.messageItemBuilder!.videoMessageItemBuilder!(
|
||||
message,
|
||||
false,
|
||||
() {},
|
||||
)!;
|
||||
}
|
||||
return TIMUIKitVideoElem(message,
|
||||
chatModel: widget.model,
|
||||
isFrom: "merger", isShowMessageReaction: false);
|
||||
isFrom: "merger",
|
||||
isShowMessageReaction: false);
|
||||
case MessageElemType.V2TIM_ELEM_TYPE_LOCATION:
|
||||
if (widget.messageItemBuilder?.locationMessageItemBuilder != null) {
|
||||
return widget.messageItemBuilder!.locationMessageItemBuilder!(
|
||||
message,
|
||||
false,
|
||||
() {},
|
||||
)!;
|
||||
}
|
||||
return Text(TIM_t("[位置]"));
|
||||
case MessageElemType.V2TIM_ELEM_TYPE_MERGER:
|
||||
if (widget.messageItemBuilder?.mergerMessageItemBuilder != null) {
|
||||
return widget.messageItemBuilder!.mergerMessageItemBuilder!(
|
||||
message,
|
||||
false,
|
||||
() {},
|
||||
)!;
|
||||
}
|
||||
return TIMUIKitMergerElem(
|
||||
model: widget.model,
|
||||
isShowJump: false,
|
||||
|
|
@ -204,31 +282,36 @@ class MergerMessageScreenState extends TIMUIKitState<MergerMessageScreen> {
|
|||
iconTheme: const IconThemeData(
|
||||
color: Colors.white,
|
||||
)),
|
||||
body: messageList.isEmpty ? Row(children: [
|
||||
Expanded(child: Column(
|
||||
mainAxisSize: MainAxisSize.max,
|
||||
crossAxisAlignment: CrossAxisAlignment.center,
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: [
|
||||
LoadingAnimationWidget.staggeredDotsWave(
|
||||
color: theme.weakTextColor ?? Colors.grey,
|
||||
size: 48,
|
||||
body: messageList.isEmpty
|
||||
? Row(
|
||||
children: [
|
||||
Expanded(
|
||||
child: Column(
|
||||
mainAxisSize: MainAxisSize.max,
|
||||
crossAxisAlignment: CrossAxisAlignment.center,
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: [
|
||||
LoadingAnimationWidget.staggeredDotsWave(
|
||||
color: theme.weakTextColor ?? Colors.grey,
|
||||
size: 48,
|
||||
),
|
||||
const SizedBox(height: 20),
|
||||
Text(TIM_t("消息列表加载中"))
|
||||
],
|
||||
))
|
||||
],
|
||||
)
|
||||
: Padding(
|
||||
padding: const EdgeInsets.all(16),
|
||||
child: ListView.builder(
|
||||
shrinkWrap: true,
|
||||
itemCount: messageList.length,
|
||||
itemBuilder: (context, index) {
|
||||
final message = messageList[index];
|
||||
return _itemBuilder(message, context);
|
||||
},
|
||||
),
|
||||
),
|
||||
const SizedBox(height: 20),
|
||||
Text(TIM_t("消息列表加载中"))
|
||||
],
|
||||
))
|
||||
],) : Padding(
|
||||
padding: const EdgeInsets.all(16),
|
||||
child: ListView.builder(
|
||||
shrinkWrap: true,
|
||||
itemCount: messageList.length,
|
||||
itemBuilder: (context, index) {
|
||||
final messageItem = messageList[index];
|
||||
return _itemBuilder(messageItem, context);
|
||||
},
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1063,7 +1063,7 @@ packages:
|
|||
name: tencent_cloud_chat_sdk
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "5.0.6"
|
||||
version: "5.0.7"
|
||||
tencent_extended_text:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
|
|
@ -1091,7 +1091,7 @@ packages:
|
|||
name: tencent_im_base
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.0.14"
|
||||
version: "1.0.17"
|
||||
tencent_im_sdk_plugin_platform_interface:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
name: tencent_cloud_chat_uikit
|
||||
description: UI components library and basic chat business logic for Tencent Cloud Chat service, helping you build In-APP Chat module easily.
|
||||
version: 1.1.0
|
||||
version: 1.2.0
|
||||
homepage: https://www.tencentcloud.com/products/im?from=pub
|
||||
repository: https://github.com/TencentCloud/tc-chat-uikit-flutter
|
||||
documentation: https://comm.qq.com/im/doc/flutter/en/TUIKit/readme.html
|
||||
|
|
@ -62,7 +62,7 @@ dependencies:
|
|||
url_launcher: ^6.1.4
|
||||
universal_html: ^2.0.8
|
||||
link_preview_generator: ^1.2.0
|
||||
tencent_im_base: ^1.0.14
|
||||
tencent_im_base: ^1.0.17
|
||||
disk_space: ^0.2.1
|
||||
http: ^0.13.5
|
||||
crypto: ^3.0.2
|
||||
|
|
|
|||
Loading…
Reference in New Issue