opt icons

Signed-off-by: dom <githubaccount56556@proton.me>
This commit is contained in:
dom
2026-05-02 17:13:33 +08:00
parent ef9d5060b0
commit 069424f9b6
8 changed files with 55 additions and 140 deletions

Binary file not shown.

View File

@@ -3,37 +3,43 @@
import 'package:flutter/widgets.dart'; import 'package:flutter/widgets.dart';
class CustomIcons { class CustomIcons {
static const IconData coin = _CustomIconData(0xe800); static const IconData ai_circle = _CustomIconData(0xe800);
static const IconData dm_off = _CustomIconData(0xe801); static const IconData coin = _CustomIconData(0xe801);
static const IconData dm_on = _CustomIconData(0xe802); static const IconData dm_off = _CustomIconData(0xe802);
static const IconData dm_settings = _CustomIconData(0xe803); static const IconData dm_on = _CustomIconData(0xe803);
static const IconData dyn = _CustomIconData(0xe804); static const IconData dm_settings = _CustomIconData(0xe804);
static const IconData fav = _CustomIconData(0xe805); static const IconData dyn = _CustomIconData(0xe805);
static const IconData flip_rotate_90 = _CustomIconData(0xe806); static const IconData fav = _CustomIconData(0xe806);
static const IconData live_reserve = _CustomIconData(0xe807); static const IconData flip_rotate_90 = _CustomIconData(0xe807);
static const IconData open_in_full_rotate_45 = _CustomIconData(0xe808); static const IconData identifier_circle = _CustomIconData(0xe808);
static const IconData player_dm_tip_back = _CustomIconData(0xe809); static const IconData live_reserve = _CustomIconData(0xe809);
static const IconData player_dm_tip_copy = _CustomIconData(0xe80a); static const IconData open_in_full_rotate_45 = _CustomIconData(0xe80a);
static const IconData player_dm_tip_like = _CustomIconData(0xe80b); static const IconData player_dm_tip_back = _CustomIconData(0xe80b);
static const IconData player_dm_tip_like_solid = _CustomIconData(0xe80c); static const IconData player_dm_tip_copy = _CustomIconData(0xe80c);
static const IconData player_dm_tip_recall = _CustomIconData(0xe80d); static const IconData player_dm_tip_like = _CustomIconData(0xe80d);
static const IconData repeat_rounded_rotate_90 = _CustomIconData(0xe80e); static const IconData player_dm_tip_like_solid = _CustomIconData(0xe80e);
static const IconData share = _CustomIconData(0xe80f); static const IconData player_dm_tip_recall = _CustomIconData(0xe80f);
static const IconData share_line = _CustomIconData(0xe810); static const IconData repeat_rounded_rotate_90 = _CustomIconData(0xe810);
static const IconData share_node = _CustomIconData(0xe811); static const IconData share = _CustomIconData(0xe811);
static const IconData splitscreen_rotate_90 = _CustomIconData(0xe812); static const IconData share_line = _CustomIconData(0xe812);
static const IconData star_favorite_line = _CustomIconData(0xe813); static const IconData share_node = _CustomIconData(0xe813);
static const IconData star_favorite_solid = _CustomIconData(0xe814); static const IconData shield_play_arrow = _CustomIconData(0xe814);
static const IconData thumbs_down = _CustomIconData(0xe815); static const IconData shield_published = _CustomIconData(0xe815);
static const IconData thumbs_down_outline = _CustomIconData(0xe816); static const IconData shield_reply = _CustomIconData(0xe816);
static const IconData thumbs_up = _CustomIconData(0xe817); static const IconData shopping_bag_not_interested = _CustomIconData(0xe817);
static const IconData thumbs_up_fill = _CustomIconData(0xe818); static const IconData splitscreen_rotate_90 = _CustomIconData(0xe818);
static const IconData thumbs_up_line = _CustomIconData(0xe819); static const IconData star_favorite_line = _CustomIconData(0xe819);
static const IconData thumbs_up_outline = _CustomIconData(0xe81a); static const IconData star_favorite_solid = _CustomIconData(0xe81a);
static const IconData topic_tag = _CustomIconData(0xe81b); static const IconData thumbs_down = _CustomIconData(0xe81b);
static const IconData touch_app_rotate_270 = _CustomIconData(0xe81c); static const IconData thumbs_down_outline = _CustomIconData(0xe81c);
static const IconData view_headline_rotate_90 = _CustomIconData(0xe81d); static const IconData thumbs_up = _CustomIconData(0xe81d);
static const IconData watch_later = _CustomIconData(0xe81e); static const IconData thumbs_up_fill = _CustomIconData(0xe81e);
static const IconData thumbs_up_line = _CustomIconData(0xe81f);
static const IconData thumbs_up_outline = _CustomIconData(0xe820);
static const IconData topic_tag = _CustomIconData(0xe821);
static const IconData touch_app_rotate_270 = _CustomIconData(0xe822);
static const IconData view_headline_rotate_90 = _CustomIconData(0xe823);
static const IconData watch_later = _CustomIconData(0xe824);
} }
class _CustomIconData extends IconData { class _CustomIconData extends IconData {

View File

@@ -1,3 +1,4 @@
import 'package:PiliPlus/common/widgets/custom_icon.dart';
import 'package:PiliPlus/http/user.dart'; import 'package:PiliPlus/http/user.dart';
import 'package:PiliPlus/http/video.dart'; import 'package:PiliPlus/http/video.dart';
import 'package:PiliPlus/models/common/account_type.dart'; import 'package:PiliPlus/models/common/account_type.dart';
@@ -52,13 +53,7 @@ class VideoPopupMenu extends StatelessWidget {
if (videoItem.bvid?.isNotEmpty == true) ...[ if (videoItem.bvid?.isNotEmpty == true) ...[
_VideoCustomAction( _VideoCustomAction(
videoItem.bvid!, videoItem.bvid!,
const Stack( const Icon(CustomIcons.identifier_circle, size: 16),
clipBehavior: Clip.none,
children: [
Icon(MdiIcons.identifier, size: 16),
Icon(MdiIcons.circleOutline, size: 16),
],
),
() => Utils.copyText(videoItem.bvid!), () => Utils.copyText(videoItem.bvid!),
), ),
_VideoCustomAction( _VideoCustomAction(
@@ -69,30 +64,7 @@ class VideoPopupMenu extends StatelessWidget {
if (videoItem.cid != null && Pref.enableAi) if (videoItem.cid != null && Pref.enableAi)
_VideoCustomAction( _VideoCustomAction(
'AI总结', 'AI总结',
const Stack( const Icon(CustomIcons.ai_circle, size: 16),
alignment: Alignment.center,
clipBehavior: Clip.none,
children: [
Icon(Icons.circle_outlined, size: 16),
ExcludeSemantics(
child: Text(
'AI',
style: TextStyle(
fontSize: 10,
height: 1,
fontWeight: FontWeight.w700,
),
strutStyle: StrutStyle(
fontSize: 10,
height: 1,
leading: 0,
fontWeight: FontWeight.w700,
),
textScaler: TextScaler.noScaling,
),
),
],
),
() async { () async {
final res = await UgcIntroController.getAiConclusion( final res = await UgcIntroController.getAiConclusion(
videoItem.bvid!, videoItem.bvid!,

View File

@@ -2,6 +2,7 @@ import 'dart:math';
import 'package:PiliPlus/common/assets.dart'; import 'package:PiliPlus/common/assets.dart';
import 'package:PiliPlus/common/style.dart'; import 'package:PiliPlus/common/style.dart';
import 'package:PiliPlus/common/widgets/custom_icon.dart';
import 'package:PiliPlus/common/widgets/dialog/report.dart'; import 'package:PiliPlus/common/widgets/dialog/report.dart';
import 'package:PiliPlus/common/widgets/extra_hit_test_widget.dart'; import 'package:PiliPlus/common/widgets/extra_hit_test_widget.dart';
import 'package:PiliPlus/common/widgets/pendant_avatar.dart'; import 'package:PiliPlus/common/widgets/pendant_avatar.dart';
@@ -391,14 +392,7 @@ class AuthorPanel extends StatelessWidget {
); );
}, },
minLeadingWidth: 0, minLeadingWidth: 0,
leading: const Stack( leading: const Icon(CustomIcons.shield_published, size: 19),
clipBehavior: Clip.none,
alignment: Alignment.center,
children: [
Icon(Icons.shield_outlined, size: 19),
Icon(Icons.published_with_changes_sharp, size: 12),
],
),
title: Text('检查动态', style: theme.textTheme.titleSmall!), title: Text('检查动态', style: theme.textTheme.titleSmall!),
), ),
if (onSetTop != null) if (onSetTop != null)

View File

@@ -1,5 +1,6 @@
import 'package:PiliPlus/common/style.dart'; import 'package:PiliPlus/common/style.dart';
import 'package:PiliPlus/common/widgets/badge.dart'; import 'package:PiliPlus/common/widgets/badge.dart';
import 'package:PiliPlus/common/widgets/custom_icon.dart';
import 'package:PiliPlus/common/widgets/flutter/layout_builder.dart'; import 'package:PiliPlus/common/widgets/flutter/layout_builder.dart';
import 'package:PiliPlus/common/widgets/image/image_save.dart'; import 'package:PiliPlus/common/widgets/image/image_save.dart';
import 'package:PiliPlus/common/widgets/image/network_img_layer.dart'; import 'package:PiliPlus/common/widgets/image/network_img_layer.dart';
@@ -132,13 +133,7 @@ class SearchArchiveGrpc extends StatelessWidget {
child: Row( child: Row(
spacing: 6, spacing: 6,
children: [ children: [
const Stack( const Icon(CustomIcons.identifier_circle, size: 16),
clipBehavior: Clip.none,
children: [
Icon(MdiIcons.identifier, size: 16),
Icon(MdiIcons.circleOutline, size: 16),
],
),
Text(bvid, style: const TextStyle(fontSize: 13)), Text(bvid, style: const TextStyle(fontSize: 13)),
], ],
), ),

View File

@@ -70,14 +70,7 @@ List<SettingsModel> get extraSettings => [
normalModel: const NormalModel.split( normalModel: const NormalModel.split(
title: '空降助手', title: '空降助手',
subtitle: '点击配置', subtitle: '点击配置',
leading: Stack( leading: Icon(CustomIcons.shield_play_arrow),
clipBehavior: Clip.none,
alignment: Alignment.center,
children: [
Icon(Icons.shield_outlined),
Icon(Icons.play_arrow_rounded, size: 15),
],
),
), ),
switchModel: SwitchModel.split( switchModel: SwitchModel.split(
defaultVal: false, defaultVal: false,
@@ -356,14 +349,7 @@ List<SettingsModel> get extraSettings => [
const SwitchModel( const SwitchModel(
title: '发评反诈', title: '发评反诈',
subtitle: '发送评论后检查评论是否可见', subtitle: '发送评论后检查评论是否可见',
leading: Stack( leading: Icon(CustomIcons.shield_reply),
clipBehavior: Clip.none,
alignment: Alignment.center,
children: [
Icon(Icons.shield_outlined),
Icon(Icons.reply, size: 14),
],
),
setKey: SettingBoxKey.enableCommAntifraud, setKey: SettingBoxKey.enableCommAntifraud,
defaultVal: false, defaultVal: false,
), ),
@@ -380,41 +366,20 @@ List<SettingsModel> get extraSettings => [
const SwitchModel( const SwitchModel(
title: '发布/转发动态反诈', title: '发布/转发动态反诈',
subtitle: '发布/转发动态后检查动态是否可见', subtitle: '发布/转发动态后检查动态是否可见',
leading: Stack( leading: Icon(CustomIcons.shield_published),
clipBehavior: Clip.none,
alignment: Alignment.center,
children: [
Icon(Icons.shield_outlined),
Icon(Icons.motion_photos_on, size: 12),
],
),
setKey: SettingBoxKey.enableCreateDynAntifraud, setKey: SettingBoxKey.enableCreateDynAntifraud,
defaultVal: false, defaultVal: false,
), ),
SwitchModel( SwitchModel(
title: '屏蔽带货动态', title: '屏蔽带货动态',
leading: const Stack( leading: const Icon(CustomIcons.shopping_bag_not_interested),
clipBehavior: Clip.none,
alignment: Alignment.center,
children: [
Icon(Icons.shopping_bag_outlined, size: 14),
Icon(Icons.not_interested),
],
),
setKey: SettingBoxKey.antiGoodsDyn, setKey: SettingBoxKey.antiGoodsDyn,
defaultVal: false, defaultVal: false,
onChanged: (value) => DynamicsDataModel.antiGoodsDyn = value, onChanged: (value) => DynamicsDataModel.antiGoodsDyn = value,
), ),
SwitchModel( SwitchModel(
title: '屏蔽带货评论', title: '屏蔽带货评论',
leading: const Stack( leading: const Icon(CustomIcons.shopping_bag_not_interested),
clipBehavior: Clip.none,
alignment: Alignment.center,
children: [
Icon(Icons.shopping_bag_outlined, size: 14),
Icon(Icons.not_interested),
],
),
setKey: SettingBoxKey.antiGoodsReply, setKey: SettingBoxKey.antiGoodsReply,
defaultVal: false, defaultVal: false,
onChanged: (value) => ReplyGrpc.antiGoodsReply = value, onChanged: (value) => ReplyGrpc.antiGoodsReply = value,

View File

@@ -4,6 +4,7 @@ import 'package:PiliPlus/common/assets.dart';
import 'package:PiliPlus/common/constants.dart'; import 'package:PiliPlus/common/constants.dart';
import 'package:PiliPlus/common/style.dart'; import 'package:PiliPlus/common/style.dart';
import 'package:PiliPlus/common/widgets/badge.dart'; import 'package:PiliPlus/common/widgets/badge.dart';
import 'package:PiliPlus/common/widgets/custom_icon.dart';
import 'package:PiliPlus/common/widgets/dialog/report.dart'; import 'package:PiliPlus/common/widgets/dialog/report.dart';
import 'package:PiliPlus/common/widgets/extra_hit_test_widget.dart'; import 'package:PiliPlus/common/widgets/extra_hit_test_widget.dart';
import 'package:PiliPlus/common/widgets/flutter/text/text.dart' as custom_text; import 'package:PiliPlus/common/widgets/flutter/text/text.dart' as custom_text;
@@ -1093,14 +1094,7 @@ class ReplyItemGrpc extends StatelessWidget {
onCheckReply?.call(item); onCheckReply?.call(item);
}, },
minLeadingWidth: 0, minLeadingWidth: 0,
leading: const Stack( leading: const Icon(CustomIcons.shield_reply, size: 19),
clipBehavior: Clip.none,
alignment: Alignment.center,
children: [
Icon(Icons.shield_outlined, size: 19),
Icon(Icons.reply, size: 12),
],
),
title: Text('检查评论', style: style), title: Text('检查评论', style: style),
), ),
], ],

View File

@@ -1843,21 +1843,10 @@ class HeaderControlState extends State<HeaderControl>
tooltip: '提交片段', tooltip: '提交片段',
style: btnStyle, style: btnStyle,
onPressed: () => videoDetailCtr.onBlock(context), onPressed: () => videoDetailCtr.onBlock(context),
icon: const Stack( icon: const Icon(
clipBehavior: Clip.none, CustomIcons.shield_play_arrow,
alignment: Alignment.center, size: 20,
children: [ color: Colors.white,
Icon(
Icons.shield_outlined,
size: 19,
color: Colors.white,
),
Icon(
Icons.play_arrow_rounded,
size: 13,
color: Colors.white,
),
],
), ),
), ),
), ),