diff --git a/assets/fonts/custom_icon.ttf b/assets/fonts/custom_icon.ttf index 88e7f64fc..74be24827 100644 Binary files a/assets/fonts/custom_icon.ttf and b/assets/fonts/custom_icon.ttf differ diff --git a/lib/common/widgets/custom_icon.dart b/lib/common/widgets/custom_icon.dart index 69d1c8931..6c31eff6c 100644 --- a/lib/common/widgets/custom_icon.dart +++ b/lib/common/widgets/custom_icon.dart @@ -9,25 +9,31 @@ class CustomIcons { static const IconData dm_settings = _CustomIconData(0xe803); static const IconData dyn = _CustomIconData(0xe804); static const IconData fav = _CustomIconData(0xe805); - static const IconData live_reserve = _CustomIconData(0xe806); - static const IconData player_dm_tip_back = _CustomIconData(0xe807); - static const IconData player_dm_tip_copy = _CustomIconData(0xe808); - static const IconData player_dm_tip_like = _CustomIconData(0xe809); - static const IconData player_dm_tip_like_solid = _CustomIconData(0xe80a); - static const IconData player_dm_tip_recall = _CustomIconData(0xe80b); - static const IconData share = _CustomIconData(0xe80c); - static const IconData share_line = _CustomIconData(0xe80d); - static const IconData share_node = _CustomIconData(0xe80e); - static const IconData star_favorite_line = _CustomIconData(0xe80f); - static const IconData star_favorite_solid = _CustomIconData(0xe810); - static const IconData thumbs_down = _CustomIconData(0xe811); - static const IconData thumbs_down_outline = _CustomIconData(0xe812); - static const IconData thumbs_up = _CustomIconData(0xe813); - static const IconData thumbs_up_fill = _CustomIconData(0xe814); - static const IconData thumbs_up_line = _CustomIconData(0xe815); - static const IconData thumbs_up_outline = _CustomIconData(0xe816); - static const IconData topic_tag = _CustomIconData(0xe817); - static const IconData watch_later = _CustomIconData(0xe818); + static const IconData flip_rotate_90 = _CustomIconData(0xe806); + static const IconData live_reserve = _CustomIconData(0xe807); + static const IconData open_in_full_rotate_45 = _CustomIconData(0xe808); + static const IconData player_dm_tip_back = _CustomIconData(0xe809); + static const IconData player_dm_tip_copy = _CustomIconData(0xe80a); + static const IconData player_dm_tip_like = _CustomIconData(0xe80b); + static const IconData player_dm_tip_like_solid = _CustomIconData(0xe80c); + static const IconData player_dm_tip_recall = _CustomIconData(0xe80d); + static const IconData repeat_rounded_rotate_90 = _CustomIconData(0xe80e); + static const IconData share = _CustomIconData(0xe80f); + static const IconData share_line = _CustomIconData(0xe810); + static const IconData share_node = _CustomIconData(0xe811); + static const IconData splitscreen_rotate_90 = _CustomIconData(0xe812); + static const IconData star_favorite_line = _CustomIconData(0xe813); + static const IconData star_favorite_solid = _CustomIconData(0xe814); + static const IconData thumbs_down = _CustomIconData(0xe815); + static const IconData thumbs_down_outline = _CustomIconData(0xe816); + static const IconData thumbs_up = _CustomIconData(0xe817); + static const IconData thumbs_up_fill = _CustomIconData(0xe818); + static const IconData thumbs_up_line = _CustomIconData(0xe819); + static const IconData thumbs_up_outline = _CustomIconData(0xe81a); + static const IconData topic_tag = _CustomIconData(0xe81b); + static const IconData touch_app_rotate_270 = _CustomIconData(0xe81c); + static const IconData view_headline_rotate_90 = _CustomIconData(0xe81d); + static const IconData watch_later = _CustomIconData(0xe81e); } class _CustomIconData extends IconData { diff --git a/lib/pages/common/dyn/common_dyn_page.dart b/lib/pages/common/dyn/common_dyn_page.dart index ca22bbcde..a463774a2 100644 --- a/lib/pages/common/dyn/common_dyn_page.dart +++ b/lib/pages/common/dyn/common_dyn_page.dart @@ -1,7 +1,6 @@ -import 'dart:math' show pi; - import 'package:PiliPlus/common/skeleton/video_reply.dart'; import 'package:PiliPlus/common/style.dart'; +import 'package:PiliPlus/common/widgets/custom_icon.dart'; import 'package:PiliPlus/common/widgets/loading_widget/http_error.dart'; import 'package:PiliPlus/common/widgets/sliver/sliver_pinned_header.dart'; import 'package:PiliPlus/common/widgets/view_safe_area.dart'; @@ -268,10 +267,7 @@ abstract class CommonDynPageState extends State ), ), ), - icon: Transform.rotate( - angle: pi / 2, - child: const Icon(Icons.splitscreen, size: 19), - ), + icon: const Icon(CustomIcons.splitscreen_rotate_90, size: 19), ); FloatingActionButtonLocation get floatingActionButtonLocation => diff --git a/lib/pages/setting/models/extra_settings.dart b/lib/pages/setting/models/extra_settings.dart index d49caa3dd..a851bd1f2 100644 --- a/lib/pages/setting/models/extra_settings.dart +++ b/lib/pages/setting/models/extra_settings.dart @@ -1,5 +1,5 @@ import 'dart:io'; -import 'dart:math' show pi, max; +import 'dart:math' show max; import 'package:PiliPlus/common/widgets/custom_icon.dart'; import 'package:PiliPlus/common/widgets/flutter/refresh_indicator.dart'; @@ -111,12 +111,9 @@ List get extraSettings => [ onTap: _showDynDialog, ), ), - SwitchModel( + const SwitchModel( title: '显示视频分段信息', - leading: Transform.rotate( - angle: pi / 2, - child: const Icon(MdiIcons.viewHeadline), - ), + leading: Icon(CustomIcons.view_headline_rotate_90), setKey: SettingBoxKey.showViewPoints, defaultVal: true, ), @@ -445,10 +442,7 @@ List get extraSettings => [ ), SwitchModel( title: '侧滑关闭二级页面', - leading: Transform.rotate( - angle: pi * 1.5, - child: const Icon(Icons.touch_app), - ), + leading: const Icon(CustomIcons.touch_app_rotate_270), setKey: SettingBoxKey.slideDismissReplyPage, defaultVal: Platform.isIOS, onChanged: (value) => CommonSlideMixin.slideDismissReplyPage = value, diff --git a/lib/pages/setting/pages/fullscreen_sc_size.dart b/lib/pages/setting/pages/fullscreen_sc_size.dart index 339efd1da..220da117e 100644 --- a/lib/pages/setting/pages/fullscreen_sc_size.dart +++ b/lib/pages/setting/pages/fullscreen_sc_size.dart @@ -1,6 +1,7 @@ import 'dart:io' show Platform; import 'dart:math' as math; +import 'package:PiliPlus/common/widgets/custom_icon.dart'; import 'package:PiliPlus/common/widgets/extra_hittest_stack.dart'; import 'package:PiliPlus/models_new/live/live_superchat/item.dart'; import 'package:PiliPlus/pages/live_room/superchat/superchat_card.dart'; @@ -113,13 +114,10 @@ class _FullScreenScSizeState extends State { alpha: .8, ), ), - child: Transform.rotate( - angle: math.pi / 4, - child: Icon( - size: 18, - Icons.open_in_full, - color: _colorScheme.onSecondaryContainer, - ), + child: Icon( + size: 18, + CustomIcons.open_in_full_rotate_45, + color: _colorScheme.onSecondaryContainer, ), ), ), diff --git a/lib/pages/video/reply_new/view.dart b/lib/pages/video/reply_new/view.dart index 875b486d8..2960b8a28 100644 --- a/lib/pages/video/reply_new/view.dart +++ b/lib/pages/video/reply_new/view.dart @@ -3,6 +3,7 @@ import 'dart:io'; import 'dart:math' show max; import 'package:PiliPlus/common/widgets/button/toolbar_icon_button.dart'; +import 'package:PiliPlus/common/widgets/custom_icon.dart'; import 'package:PiliPlus/common/widgets/flutter/text_field/controller.dart' show RichTextType; import 'package:PiliPlus/common/widgets/flutter/text_field/text_field.dart'; @@ -194,46 +195,19 @@ class _ReplyPageState extends CommonRichTextPubPageState { atBtn, const SizedBox(width: 8), moreBtn, - Expanded( - child: Center( - child: Obx( - () { - final syncToDynamic = _syncToDynamic.value; - return TextButton( - style: TextButton.styleFrom( - tapTargetSize: MaterialTapTargetSize.shrinkWrap, - padding: const EdgeInsets.all(13), - visualDensity: VisualDensity.compact, - foregroundColor: syncToDynamic - ? themeData.colorScheme.secondary - : themeData.colorScheme.outline, - ), - onPressed: () => _syncToDynamic.value = !syncToDynamic, - child: Row( - spacing: 4, - mainAxisSize: MainAxisSize.min, - children: [ - Icon( - syncToDynamic - ? Icons.check_box - : Icons.check_box_outline_blank, - size: 22, - ), - const Flexible( - child: Text( - '转到动态', - maxLines: 1, - style: TextStyle(height: 1), - strutStyle: StrutStyle(leading: 0, height: 1), - ), - ), - ], - ), - ); - }, + const SizedBox(width: 8), + Obx( + () => ToolbarIconButton( + tooltip: '转到动态', + onPressed: _syncToDynamic.toggle, + icon: const Icon( + CustomIcons.repeat_rounded_rotate_90, + size: 22, ), + selected: _syncToDynamic.value, ), ), + const Spacer(), Obx( () => FilledButton.tonal( onPressed: enablePublish.value ? onPublish : null, diff --git a/lib/pages/video/widgets/header_control.dart b/lib/pages/video/widgets/header_control.dart index a666c6bd9..e80e8ba58 100644 --- a/lib/pages/video/widgets/header_control.dart +++ b/lib/pages/video/widgets/header_control.dart @@ -1,7 +1,7 @@ -import 'dart:async'; +import 'dart:async' show Timer; import 'dart:convert' show jsonDecode, utf8; -import 'dart:io'; -import 'dart:math'; +import 'dart:io' show Platform, File; +import 'dart:typed_data' show Uint8List; import 'package:PiliPlus/common/constants.dart'; import 'package:PiliPlus/common/widgets/button/icon_button.dart'; @@ -59,7 +59,7 @@ import 'package:dio/dio.dart'; import 'package:easy_debounce/easy_throttle.dart'; import 'package:file_picker/file_picker.dart'; import 'package:floating/floating.dart'; -import 'package:flutter/foundation.dart'; +import 'package:flutter/foundation.dart' show compute; import 'package:flutter/material.dart' hide showBottomSheet; import 'package:flutter_smart_dialog/flutter_smart_dialog.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart'; @@ -527,15 +527,12 @@ class HeaderControlState extends State () { final flipY = plPlayerController.flipY.value; return ActionRowLineItem( - icon: Transform.rotate( - angle: pi / 2, - child: Icon( - Icons.flip, - size: 13, - color: flipY - ? theme.colorScheme.onSecondaryContainer - : theme.colorScheme.outline, - ), + icon: Icon( + CustomIcons.flip_rotate_90, + size: 13, + color: flipY + ? theme.colorScheme.onSecondaryContainer + : theme.colorScheme.outline, ), onTap: () { plPlayerController.flipY.value = !flipY; diff --git a/lib/plugin/pl_player/view/view.dart b/lib/plugin/pl_player/view/view.dart index 3877a01e0..80b206bcb 100644 --- a/lib/plugin/pl_player/view/view.dart +++ b/lib/plugin/pl_player/view/view.dart @@ -501,13 +501,10 @@ class _PLVideoPlayerState extends State iconSize: 22, color: Colors.white, disable: !show, - child: Transform.rotate( - angle: math.pi / 2, - child: const Icon( - Icons.reorder, - size: 22, - color: Colors.white, - ), + child: const Icon( + CustomIcons.view_headline_rotate_90, + size: 22, + color: Colors.white, ), ), onTap: widget.showViewPoints,