Compare commits
2 Commits
cc76651dba
...
1271c27b41
| Author | SHA1 | Date |
|---|---|---|
|
|
1271c27b41 | |
|
|
2599ce7cca |
|
|
@ -34,6 +34,15 @@
|
||||||
* 从 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/` 真正被保护。
|
||||||
|
|
|
||||||
|
|
@ -25,12 +25,10 @@ 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,
|
type: TIMCallbackType.INFO, infoRecommendText: TIM_t("请选择要操作的消息!")));
|
||||||
infoRecommendText: TIM_t("请选择要操作的消息!")));
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -53,7 +51,8 @@ class MultiSelectPanel extends TIMUIKitStatelessWidget {
|
||||||
}
|
}
|
||||||
|
|
||||||
// 逐条转发限制在 30 条以内
|
// 逐条转发限制在 30 条以内
|
||||||
if (!isMergerForward && model.getSelectedMessageList().length > forwardMsgNumLimit) {
|
if (!isMergerForward &&
|
||||||
|
model.getSelectedMessageList().length > forwardMsgNumLimit) {
|
||||||
_showForwardLimitDialog(context);
|
_showForwardLimitDialog(context);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
@ -105,11 +104,11 @@ 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,
|
||||||
|
|
@ -117,8 +116,7 @@ class MultiSelectPanel extends TIMUIKitStatelessWidget {
|
||||||
isMergerForward: isMergerForward,
|
isMergerForward: isMergerForward,
|
||||||
conversationType: conversationType,
|
conversationType: conversationType,
|
||||||
),
|
),
|
||||||
)
|
));
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
|
@ -154,7 +152,9 @@ 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,7 +170,9 @@ 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);
|
||||||
|
|
@ -178,8 +180,8 @@ class MultiSelectPanel extends TIMUIKitStatelessWidget {
|
||||||
),
|
),
|
||||||
Text(
|
Text(
|
||||||
TIM_t("合并转发"),
|
TIM_t("合并转发"),
|
||||||
style:
|
style: TextStyle(
|
||||||
TextStyle(color: theme.selectPanelTextIconColor, fontSize: 12),
|
color: theme.selectPanelTextIconColor, fontSize: 12),
|
||||||
)
|
)
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
|
@ -188,11 +190,14 @@ 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.confirmDeleteMessages,
|
operationKey: TUIKitWideModalOperationKey
|
||||||
|
.confirmDeleteMessages,
|
||||||
context: context,
|
context: context,
|
||||||
text: TIM_t("确定删除已选消息"),
|
text: TIM_t("确定删除已选消息"),
|
||||||
theme: theme,
|
theme: theme,
|
||||||
|
|
@ -205,14 +210,18 @@ class MultiSelectPanel extends TIMUIKitStatelessWidget {
|
||||||
),
|
),
|
||||||
Text(TIM_t("删除"),
|
Text(TIM_t("删除"),
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
color: theme.selectPanelTextIconColor, fontSize: 12))
|
color: theme.selectPanelTextIconColor,
|
||||||
|
fontSize: 12))
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
InkWell(
|
InkWell(
|
||||||
onTap: (){
|
onTap: () {
|
||||||
model.updateMultiSelectStatus(false);
|
model.updateMultiSelectStatus(false);
|
||||||
},
|
},
|
||||||
child: Icon(Icons.close, color: theme.darkTextColor,),
|
child: Icon(
|
||||||
|
Icons.close,
|
||||||
|
color: theme.darkTextColor,
|
||||||
|
),
|
||||||
)
|
)
|
||||||
],
|
],
|
||||||
))
|
))
|
||||||
|
|
@ -223,8 +232,8 @@ class MultiSelectPanel extends TIMUIKitStatelessWidget {
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
border: Border(
|
border: Border(
|
||||||
top: BorderSide(
|
top: BorderSide(
|
||||||
color: theme.weakDividerColor ??
|
color:
|
||||||
CommonColor.weakDividerColor)),
|
theme.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),
|
||||||
|
|
@ -235,21 +244,28 @@ 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', color: theme.selectPanelTextIconColor),
|
package: 'tencent_cloud_chat_uikit',
|
||||||
|
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(color: theme.selectPanelTextIconColor, fontSize: 12))
|
style: TextStyle(
|
||||||
|
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', color: theme.selectPanelTextIconColor),
|
package: 'tencent_cloud_chat_uikit',
|
||||||
|
color: theme.selectPanelTextIconColor,
|
||||||
|
width: 40,
|
||||||
|
height: 40),
|
||||||
iconSize: 40,
|
iconSize: 40,
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
_handleForwardMessage(context, true, model);
|
_handleForwardMessage(context, true, model);
|
||||||
|
|
@ -257,7 +273,8 @@ class MultiSelectPanel extends TIMUIKitStatelessWidget {
|
||||||
),
|
),
|
||||||
Text(
|
Text(
|
||||||
TIM_t("合并转发"),
|
TIM_t("合并转发"),
|
||||||
style: TextStyle(color: theme.selectPanelTextIconColor, fontSize: 12),
|
style: TextStyle(
|
||||||
|
color: theme.selectPanelTextIconColor, fontSize: 12),
|
||||||
)
|
)
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
|
@ -265,7 +282,10 @@ 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', color: theme.selectPanelTextIconColor),
|
package: 'tencent_cloud_chat_uikit',
|
||||||
|
color: theme.selectPanelTextIconColor,
|
||||||
|
width: 40,
|
||||||
|
height: 40),
|
||||||
iconSize: 40,
|
iconSize: 40,
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
showCupertinoModalPopup<String>(
|
showCupertinoModalPopup<String>(
|
||||||
|
|
@ -306,7 +326,8 @@ class MultiSelectPanel extends TIMUIKitStatelessWidget {
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
Text(TIM_t("删除"),
|
Text(TIM_t("删除"),
|
||||||
style: TextStyle(color: theme.selectPanelTextIconColor, fontSize: 12))
|
style: TextStyle(
|
||||||
|
color: theme.selectPanelTextIconColor, fontSize: 12))
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
],
|
],
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue