Compare commits

..

No commits in common. "1271c27b41b0a4db8d6e5e02dbc2712332750e1a" and "cc76651dba1334b14ae616f43c97bcb06c60a547" have entirely different histories.

2 changed files with 35 additions and 65 deletions

View File

@ -34,15 +34,6 @@
* 从 upstream/main 同步了 `images/photo.svg`、`images/screen.svg`、`images/file.svg` 官方资源。 * 从 upstream/main 同步了 `images/photo.svg`、`images/screen.svg`、`images/file.svg` 官方资源。
* 移除了之前的所有本地修改(包括使用 `images/svg/send_image.svg` 等的尝试)。 * 移除了之前的所有本地修改(包括使用 `images/svg/send_image.svg` 等的尝试)。
### `lib/ui/views/TIMUIKitChat/tim_uikit_multi_select_panel.dart`
* **修改日期**: 2026-01-06
* **修改目的**: 修复 Material 3 下多选面板图标按钮尺寸显示问题。
* **详细改动**:
* 为所有 `Image.asset` 添加明确的 `width``height` 参数。
* 桌面端desktopWidget图标设置为 30x30。
* 移动端defaultWidget图标设置为 40x40。
* 解决 `IconButton``iconSize` 参数对 `Image.asset` 不生效的 M3 兼容性问题。
### `scripts/sync_from_upstream.sh` ### `scripts/sync_from_upstream.sh`
* **修改日期**: 2026-01-05 * **修改日期**: 2026-01-05
* **修改目的**: 修复同步脚本的关键 bug确保 `images/` 真正被保护。 * **修改目的**: 修复同步脚本的关键 bug确保 `images/` 真正被保护。

View File

@ -25,10 +25,12 @@ class MultiSelectPanel extends TIMUIKitStatelessWidget {
_handleForwardMessage(BuildContext context, bool isMergerForward, _handleForwardMessage(BuildContext context, bool isMergerForward,
TUIChatSeparateViewModel model) { TUIChatSeparateViewModel model) {
// //
if (model.getSelectedMessageList().isEmpty) { if (model.getSelectedMessageList().isEmpty) {
onTIMCallback(TIMCallback( onTIMCallback(TIMCallback(
type: TIMCallbackType.INFO, infoRecommendText: TIM_t("请选择要操作的消息!"))); type: TIMCallbackType.INFO,
infoRecommendText: TIM_t("请选择要操作的消息!")));
return; return;
} }
@ -44,15 +46,14 @@ class MultiSelectPanel extends TIMUIKitStatelessWidget {
// //
if (model.isVoteMessage(v2TimMessage)) { if (model.isVoteMessage(v2TimMessage)) {
onTIMCallback(TIMCallback( onTIMCallback(TIMCallback(
type: TIMCallbackType.INFO, type: TIMCallbackType.INFO,
infoRecommendText: TIM_t("投票消息不支持转发!"))); infoRecommendText: TIM_t("投票消息不支持转发!")));
return; return;
} }
} }
// 30 // 30
if (!isMergerForward && if (!isMergerForward && model.getSelectedMessageList().length > forwardMsgNumLimit) {
model.getSelectedMessageList().length > forwardMsgNumLimit) {
_showForwardLimitDialog(context); _showForwardLimitDialog(context);
return; return;
} }
@ -104,19 +105,20 @@ class MultiSelectPanel extends TIMUIKitStatelessWidget {
submitWidget: Text(TIM_t("发送")), submitWidget: Text(TIM_t("发送")),
width: MediaQuery.of(context).size.width * 0.5, width: MediaQuery.of(context).size.width * 0.5,
height: MediaQuery.of(context).size.height * 0.8, height: MediaQuery.of(context).size.height * 0.8,
onSubmit: () { onSubmit: (){
forwardMessageScreenKey.currentState?.handleForwardMessage(); forwardMessageScreenKey.currentState?.handleForwardMessage();
}, },
child: (onClose) => Container( child: (onClose) => Container(
padding: const EdgeInsets.symmetric(horizontal: 10), padding: const EdgeInsets.symmetric( horizontal: 10),
child: ForwardMessageScreen( child: ForwardMessageScreen(
model: model, model: model,
key: forwardMessageScreenKey, key: forwardMessageScreenKey,
onClose: onClose, onClose: onClose,
isMergerForward: isMergerForward, isMergerForward: isMergerForward,
conversationType: conversationType, conversationType: conversationType,
), ),
)); )
);
} }
@override @override
@ -143,7 +145,7 @@ class MultiSelectPanel extends TIMUIKitStatelessWidget {
children: [ children: [
Expanded( Expanded(
child: Wrap( child: Wrap(
crossAxisAlignment: WrapCrossAlignment.center, crossAxisAlignment: WrapCrossAlignment.center,
alignment: WrapAlignment.center, alignment: WrapAlignment.center,
spacing: 64, spacing: 64,
children: [ children: [
@ -152,9 +154,7 @@ class MultiSelectPanel extends TIMUIKitStatelessWidget {
IconButton( IconButton(
icon: Image.asset('images/forward.png', icon: Image.asset('images/forward.png',
package: 'tencent_cloud_chat_uikit', package: 'tencent_cloud_chat_uikit',
color: theme.selectPanelTextIconColor, color: theme.selectPanelTextIconColor),
width: 30,
height: 30),
iconSize: 30, iconSize: 30,
onPressed: () { onPressed: () {
_handleForwardMessageWide(context, false, model); _handleForwardMessageWide(context, false, model);
@ -170,9 +170,7 @@ class MultiSelectPanel extends TIMUIKitStatelessWidget {
IconButton( IconButton(
icon: Image.asset('images/merge_forward.png', icon: Image.asset('images/merge_forward.png',
package: 'tencent_cloud_chat_uikit', package: 'tencent_cloud_chat_uikit',
color: theme.selectPanelTextIconColor, color: theme.selectPanelTextIconColor),
width: 30,
height: 30),
iconSize: 30, iconSize: 30,
onPressed: () { onPressed: () {
_handleForwardMessageWide(context, true, model); _handleForwardMessageWide(context, true, model);
@ -180,8 +178,8 @@ class MultiSelectPanel extends TIMUIKitStatelessWidget {
), ),
Text( Text(
TIM_t("合并转发"), TIM_t("合并转发"),
style: TextStyle( style:
color: theme.selectPanelTextIconColor, fontSize: 12), TextStyle(color: theme.selectPanelTextIconColor, fontSize: 12),
) )
], ],
), ),
@ -190,14 +188,11 @@ class MultiSelectPanel extends TIMUIKitStatelessWidget {
IconButton( IconButton(
icon: Image.asset('images/delete.png', icon: Image.asset('images/delete.png',
package: 'tencent_cloud_chat_uikit', package: 'tencent_cloud_chat_uikit',
color: theme.selectPanelTextIconColor, color: theme.selectPanelTextIconColor),
width: 30,
height: 30),
iconSize: 30, iconSize: 30,
onPressed: () { onPressed: () {
TUIKitWidePopup.showSecondaryConfirmDialog( TUIKitWidePopup.showSecondaryConfirmDialog(
operationKey: TUIKitWideModalOperationKey operationKey: TUIKitWideModalOperationKey.confirmDeleteMessages,
.confirmDeleteMessages,
context: context, context: context,
text: TIM_t("确定删除已选消息"), text: TIM_t("确定删除已选消息"),
theme: theme, theme: theme,
@ -210,18 +205,14 @@ class MultiSelectPanel extends TIMUIKitStatelessWidget {
), ),
Text(TIM_t("删除"), Text(TIM_t("删除"),
style: TextStyle( style: TextStyle(
color: theme.selectPanelTextIconColor, color: theme.selectPanelTextIconColor, fontSize: 12))
fontSize: 12))
], ],
), ),
InkWell( InkWell(
onTap: () { onTap: (){
model.updateMultiSelectStatus(false); model.updateMultiSelectStatus(false);
}, },
child: Icon( child: Icon(Icons.close, color: theme.darkTextColor,),
Icons.close,
color: theme.darkTextColor,
),
) )
], ],
)) ))
@ -232,8 +223,8 @@ class MultiSelectPanel extends TIMUIKitStatelessWidget {
decoration: BoxDecoration( decoration: BoxDecoration(
border: Border( border: Border(
top: BorderSide( top: BorderSide(
color: color: theme.weakDividerColor ??
theme.weakDividerColor ?? CommonColor.weakDividerColor)), CommonColor.weakDividerColor)),
color: theme.selectPanelBgColor ?? theme.primaryColor, color: theme.selectPanelBgColor ?? theme.primaryColor,
), ),
padding: const EdgeInsets.only(top: 12, bottom: 48), padding: const EdgeInsets.only(top: 12, bottom: 48),
@ -244,28 +235,21 @@ class MultiSelectPanel extends TIMUIKitStatelessWidget {
children: [ children: [
IconButton( IconButton(
icon: Image.asset('images/forward.png', icon: Image.asset('images/forward.png',
package: 'tencent_cloud_chat_uikit', package: 'tencent_cloud_chat_uikit', color: theme.selectPanelTextIconColor),
color: theme.selectPanelTextIconColor,
width: 40,
height: 40),
iconSize: 40, iconSize: 40,
onPressed: () { onPressed: () {
_handleForwardMessage(context, false, model); _handleForwardMessage(context, false, model);
}, },
), ),
Text(TIM_t("逐条转发"), Text(TIM_t("逐条转发"),
style: TextStyle( style: TextStyle(color: theme.selectPanelTextIconColor, fontSize: 12))
color: theme.selectPanelTextIconColor, fontSize: 12))
], ],
), ),
Column( Column(
children: [ children: [
IconButton( IconButton(
icon: Image.asset('images/merge_forward.png', icon: Image.asset('images/merge_forward.png',
package: 'tencent_cloud_chat_uikit', package: 'tencent_cloud_chat_uikit', color: theme.selectPanelTextIconColor),
color: theme.selectPanelTextIconColor,
width: 40,
height: 40),
iconSize: 40, iconSize: 40,
onPressed: () { onPressed: () {
_handleForwardMessage(context, true, model); _handleForwardMessage(context, true, model);
@ -273,8 +257,7 @@ class MultiSelectPanel extends TIMUIKitStatelessWidget {
), ),
Text( Text(
TIM_t("合并转发"), TIM_t("合并转发"),
style: TextStyle( style: TextStyle(color: theme.selectPanelTextIconColor, fontSize: 12),
color: theme.selectPanelTextIconColor, fontSize: 12),
) )
], ],
), ),
@ -282,10 +265,7 @@ class MultiSelectPanel extends TIMUIKitStatelessWidget {
children: [ children: [
IconButton( IconButton(
icon: Image.asset('images/delete.png', icon: Image.asset('images/delete.png',
package: 'tencent_cloud_chat_uikit', package: 'tencent_cloud_chat_uikit', color: theme.selectPanelTextIconColor),
color: theme.selectPanelTextIconColor,
width: 40,
height: 40),
iconSize: 40, iconSize: 40,
onPressed: () { onPressed: () {
showCupertinoModalPopup<String>( showCupertinoModalPopup<String>(
@ -326,8 +306,7 @@ class MultiSelectPanel extends TIMUIKitStatelessWidget {
}, },
), ),
Text(TIM_t("删除"), Text(TIM_t("删除"),
style: TextStyle( style: TextStyle(color: theme.selectPanelTextIconColor, fontSize: 12))
color: theme.selectPanelTextIconColor, fontSize: 12))
], ],
) )
], ],