diff --git a/lib/pages/common/common_intro_controller.dart b/lib/pages/common/common_intro_controller.dart index 05a1de9db..4d3b92bf8 100644 --- a/lib/pages/common/common_intro_controller.dart +++ b/lib/pages/common/common_intro_controller.dart @@ -153,7 +153,7 @@ abstract class CommonIntroController extends GetxController final res = await (hasLater.value ? UserHttp.toViewDel(aids: IdUtils.bv2av(bvid).toString()) : UserHttp.toViewLater(bvid: bvid)); - if (res.isSuccess) hasLater.value = !hasLater.value; + if (res.isSuccess) hasLater.toggle(); } } @@ -239,7 +239,7 @@ mixin FavMixin on TripleMixin { SmartDialog.dismiss(); if (result.isSuccess) { updateFavCount(hasFav ? -1 : 1); - this.hasFav.value = !hasFav; + this.hasFav.toggle(); SmartDialog.showToast('${hasFav ? '取消' : ''}收藏成功'); } else { res.toast(); diff --git a/lib/pages/dynamics/widgets/rich_node_panel.dart b/lib/pages/dynamics/widgets/rich_node_panel.dart index d74acaf6e..6322f2c81 100644 --- a/lib/pages/dynamics/widgets/rich_node_panel.dart +++ b/lib/pages/dynamics/widgets/rich_node_panel.dart @@ -68,18 +68,13 @@ TextSpan? richNode( if (i.origText == _linkFoldedText) { item.linkFolded = true; } - spanChildren.add( - TextSpan( - text: i.origText, - style: const TextStyle(height: 1.65), - ), - ); + spanChildren.add(TextSpan(text: i.origText)); break; // @用户 case 'RICH_TEXT_NODE_TYPE_AT': spanChildren.add( TextSpan( - text: ' ${i.text}', + text: '${spanChildren.isNotEmpty ? ' ' : ''}${i.text}', style: style, recognizer: NoDeadlineTapGestureRecognizer() ..onTap = () => Get.toNamed('/member?mid=${i.rid}'), @@ -365,7 +360,10 @@ TextSpan? richNode( break; } } - return TextSpan(children: spanChildren); + return TextSpan( + children: spanChildren, + style: const TextStyle(height: 1.65), + ); } } catch (err) { if (kDebugMode) debugPrint('❌rich_node_panel err: $err'); diff --git a/lib/pages/dynamics_topic/controller.dart b/lib/pages/dynamics_topic/controller.dart index 5c8b572c5..24d2497b6 100644 --- a/lib/pages/dynamics_topic/controller.dart +++ b/lib/pages/dynamics_topic/controller.dart @@ -109,7 +109,7 @@ class DynTopicController } else { topState.value.data!.topicItem!.fav += 1; } - this.isFav.value = !isFav; + this.isFav.toggle(); } else { res.toast(); } @@ -128,7 +128,7 @@ class DynTopicController } else { topState.value.data!.topicItem!.like += 1; } - this.isLike.value = !isLike; + this.isLike.toggle(); } else { res.toast(); } diff --git a/lib/pages/dynamics_topic/view.dart b/lib/pages/dynamics_topic/view.dart index 326b7853f..11feff1bc 100644 --- a/lib/pages/dynamics_topic/view.dart +++ b/lib/pages/dynamics_topic/view.dart @@ -421,14 +421,15 @@ class _DynTopicPageState extends State Widget _buildFoldItem(FoldCardItem item) { return Padding( padding: const .only(top: 12), - child: InkWell( - onTap: _controller.topicFold, - child: Ink( - padding: const .symmetric(vertical: 10), - color: colorScheme.outline.withValues(alpha: .05), - child: Center( + child: Material( + color: colorScheme.outline.withValues(alpha: .05), + child: InkWell( + onTap: _controller.topicFold, + child: Padding( + padding: const .symmetric(vertical: 10), child: Row( mainAxisSize: .min, + mainAxisAlignment: .center, children: [ Text(item.foldDesc!), const Icon(Icons.keyboard_arrow_right, size: 22), diff --git a/lib/pages/live_area/controller.dart b/lib/pages/live_area/controller.dart index 151c25203..8d2213b7d 100644 --- a/lib/pages/live_area/controller.dart +++ b/lib/pages/live_area/controller.dart @@ -61,13 +61,13 @@ class LiveAreaController extends CommonListController?, AreaList> ids: response.map((e) => e.id).join(','), ); if (res.isSuccess) { - isEditing.value = !isEditing.value; + isEditing.toggle(); SmartDialog.showToast('设置成功'); } else { res.toast(); } } else { - isEditing.value = !isEditing.value; + isEditing.toggle(); } } @@ -75,7 +75,7 @@ class LiveAreaController extends CommonListController?, AreaList> if (isEditing.value) { setFavTag(); } else { - isEditing.value = !isEditing.value; + isEditing.toggle(); } } diff --git a/lib/pages/live_room/superchat/superchat_card.dart b/lib/pages/live_room/superchat/superchat_card.dart index ee2392360..8e0b8c30d 100644 --- a/lib/pages/live_room/superchat/superchat_card.dart +++ b/lib/pages/live_room/superchat/superchat_card.dart @@ -244,18 +244,23 @@ class _SuperChatCardState extends State { color: bottomColor, ), padding: const .all(8), - child: SelectableText( - item.message, - selectionColor: Colors.black26, - scrollPhysics: const NeverSelectableScrollPhysics(), - style: TextStyle( - color: ColourUtils.parseColor(item.messageFontColor), - decoration: widget.persistentSC && item.deleted - ? .lineThrough - : null, - decorationThickness: 1.5, - decorationStyle: .double, - decorationColor: Colors.white, + child: TextSelectionTheme( + data: TextSelectionThemeData( + selectionHandleColor: Color.lerp(bottomColor, Colors.white, .26), + ), + child: SelectableText( + item.message, + scrollPhysics: const NeverSelectableScrollPhysics(), + selectionColor: Color.lerp(bottomColor, Colors.black, .26), + style: TextStyle( + color: ColourUtils.parseColor(item.messageFontColor), + // decoration: widget.persistentSC && item.deleted + // ? .lineThrough + // : null, + // decorationThickness: 1.5, + // decorationStyle: .double, + // decorationColor: Colors.white, + ), ), ), ), diff --git a/lib/pages/live_room/widgets/header_control.dart b/lib/pages/live_room/widgets/header_control.dart index e1fb7a488..d8aaf83cd 100644 --- a/lib/pages/live_room/widgets/header_control.dart +++ b/lib/pages/live_room/widgets/header_control.dart @@ -184,28 +184,25 @@ class _LiveHeaderControlState extends State ), ), Obx( - () { - final onlyPlayAudio = plPlayerController.onlyPlayAudio.value; - return ComBtn( - height: 30, - tooltip: '仅播放音频', - onTap: () { - plPlayerController.onlyPlayAudio.value = !onlyPlayAudio; - widget.onPlayAudio(); - }, - icon: onlyPlayAudio - ? const Icon( - size: 18, - MdiIcons.musicCircle, - color: Colors.white, - ) - : const Icon( - size: 18, - MdiIcons.musicCircleOutline, - color: Colors.white, - ), - ); - }, + () => ComBtn( + height: 30, + tooltip: '仅播放音频', + onTap: () { + plPlayerController.onlyPlayAudio.toggle(); + widget.onPlayAudio(); + }, + icon: plPlayerController.onlyPlayAudio.value + ? const Icon( + size: 18, + MdiIcons.musicCircle, + color: Colors.white, + ) + : const Icon( + size: 18, + MdiIcons.musicCircleOutline, + color: Colors.white, + ), + ), ), if (PlatformUtils.isMobile) Obx(() { diff --git a/lib/pages/pgc_index/view.dart b/lib/pages/pgc_index/view.dart index 4da07b810..18c54435e 100644 --- a/lib/pages/pgc_index/view.dart +++ b/lib/pages/pgc_index/view.dart @@ -197,11 +197,11 @@ class _PgcIndexPageState extends State if (count > 5) ...[ const SizedBox(height: 8), GestureDetector( - behavior: HitTestBehavior.opaque, - onTap: () => _ctr.isExpand.value = !_ctr.isExpand.value, + behavior: .opaque, + onTap: _ctr.isExpand.toggle, child: Center( child: Row( - mainAxisSize: MainAxisSize.min, + mainAxisSize: .min, children: [ Text( _ctr.isExpand.value ? '收起' : '展开', diff --git a/lib/pages/pgc_review/post/view.dart b/lib/pages/pgc_review/post/view.dart index 0e908f815..34a6079b1 100644 --- a/lib/pages/pgc_review/post/view.dart +++ b/lib/pages/pgc_review/post/view.dart @@ -154,8 +154,8 @@ class _PgcReviewPostPanelState extends State { Padding( padding: const EdgeInsets.only(left: 12, right: 12, bottom: 12), child: GestureDetector( - behavior: HitTestBehavior.opaque, - onTap: () => _shareFeed.value = !_shareFeed.value, + behavior: .opaque, + onTap: _shareFeed.toggle, child: Obx( () { final shareFeed = _shareFeed.value; @@ -163,7 +163,7 @@ class _PgcReviewPostPanelState extends State { ? theme.colorScheme.primary : theme.colorScheme.outline; return Row( - mainAxisSize: MainAxisSize.min, + mainAxisSize: .min, children: [ Icon( size: 22, @@ -172,10 +172,7 @@ class _PgcReviewPostPanelState extends State { : Icons.check_box_outline_blank_outlined, color: color, ), - Text( - ' 分享到动态', - style: TextStyle(color: color), - ), + Text(' 分享到动态', style: TextStyle(color: color)), ], ); }, diff --git a/lib/pages/video/introduction/pgc/controller.dart b/lib/pages/video/introduction/pgc/controller.dart index 523ccee7c..7fbdb202c 100644 --- a/lib/pages/video/introduction/pgc/controller.dart +++ b/lib/pages/video/introduction/pgc/controller.dart @@ -472,7 +472,7 @@ class PgcIntroController extends CommonIntroController { ? await FavHttp.delFavPugv(seasonId!) : await FavHttp.addFavPugv(seasonId!); if (res.isSuccess) { - this.isFav.value = !isFav; + this.isFav.toggle(); SmartDialog.showToast('${isFav ? '取消' : ''}收藏成功'); } else { res.toast(); diff --git a/lib/pages/whisper_link_setting/controller.dart b/lib/pages/whisper_link_setting/controller.dart index 5d745b9b6..f6538405e 100644 --- a/lib/pages/whisper_link_setting/controller.dart +++ b/lib/pages/whisper_link_setting/controller.dart @@ -94,7 +94,7 @@ class WhisperLinkSettingController extends GetxController { ? await ImGrpc.unpinSession(sessionId: sessionId) : await ImGrpc.pinSession(sessionId: sessionId); if (res.isSuccess) { - isPinned.value = !isPinned.value; + isPinned.toggle(); } else { res.toast(); } diff --git a/lib/plugin/pl_player/controller.dart b/lib/plugin/pl_player/controller.dart index 1a68edaeb..154ed669f 100644 --- a/lib/plugin/pl_player/controller.dart +++ b/lib/plugin/pl_player/controller.dart @@ -1608,7 +1608,7 @@ class PlPlayerController with BlockConfigMixin { } void setContinuePlayInBackground() { - continuePlayInBackground.value = !continuePlayInBackground.value; + continuePlayInBackground.toggle(); if (!tempPlayerConf) { setting.put( SettingBoxKey.continuePlayInBackground, @@ -1618,10 +1618,8 @@ class PlPlayerController with BlockConfigMixin { } void setOnlyPlayAudio() { - onlyPlayAudio.value = !onlyPlayAudio.value; - videoPlayerController?.setVideoTrack( - onlyPlayAudio.value ? VideoTrack.no() : VideoTrack.auto(), - ); + onlyPlayAudio.toggle(); + videoPlayerController?.setVideoTrack(onlyPlayAudio.value ? .no() : .auto()); } late final Map previewCache = {}; diff --git a/lib/plugin/pl_player/view/view.dart b/lib/plugin/pl_player/view/view.dart index d472358e5..37ae3da1e 100644 --- a/lib/plugin/pl_player/view/view.dart +++ b/lib/plugin/pl_player/view/view.dart @@ -523,7 +523,6 @@ class _PLVideoPlayerState extends State BottomControlType.viewPoints => Obx( () { if (videoDetailController.viewPointList.isNotEmpty) { - final show = videoDetailController.showVP.value; return ComBtn( width: widgetWidth, height: 30, @@ -531,7 +530,7 @@ class _PLVideoPlayerState extends State icon: DisabledIcon( iconSize: 22, color: Colors.white, - disable: !show, + disable: !videoDetailController.showVP.value, child: const Icon( CustomIcons.view_headline_rotate_90, size: 22, @@ -541,11 +540,11 @@ class _PLVideoPlayerState extends State onTap: widget.showViewPoints, onLongPress: () { Feedback.forLongPress(context); - videoDetailController.showVP.value = !show; + videoDetailController.showVP.toggle(); }, onSecondaryTap: PlatformUtils.isMobile ? null - : () => videoDetailController.showVP.value = !show, + : () => videoDetailController.showVP.toggle(), ); } return const SizedBox.shrink();