logo和名称替换

This commit is contained in:
谢宇宁
2026-10-14 11:23:36 +07:00
parent 1cb514cd02
commit c5c04a7967
478 changed files with 8990 additions and 4948 deletions
@@ -2,9 +2,9 @@ import 'dart:async';
import 'dart:math';
import 'package:flutter/cupertino.dart';
import 'package:hgmj/hj_model/video_model.dart';
import 'package:hgmj/tools_base/event_bus/event_bus_util.dart';
import 'package:hgmj/tools_base/event_bus/events.dart';
import 'package:wydj/hj_model/video_model.dart';
import 'package:wydj/tools_base/event_bus/event_bus_util.dart';
import 'package:wydj/tools_base/event_bus/events.dart';
import '../../../hj_model/acg/cartoon_more_list.dart';
import '../../../hj_model/cartoon_media_info.dart';
@@ -60,7 +60,10 @@ class _CollectStatusWrapperState extends State<CollectStatusWrapper> {
}
void _listenCallback(CollectStatusModel model) {
String? obId = widget.allMediaInfo?.id ?? widget.mediaInfo?.id ?? widget.videoModel?.id ?? widget.tagModel?.id;
String? obId = widget.allMediaInfo?.id ??
widget.mediaInfo?.id ??
widget.videoModel?.id ??
widget.tagModel?.id;
//收藏和点赞逻辑
if (obId == model.id && obId?.isNotEmpty == true) {
if (model.isCollected != null) {
@@ -77,7 +80,8 @@ class _CollectStatusWrapperState extends State<CollectStatusWrapper> {
} else {}
}
// 用户关注逻辑
if (model.isFollowed != null && model.uid == widget.videoModel?.publisher?.uid) {
if (model.isFollowed != null &&
model.uid == widget.videoModel?.publisher?.uid) {
widget.videoModel?.publisher?.hasFollowed = model.isFollowed;
setState(() {});
}
+62 -29
View File
@@ -5,10 +5,10 @@ import 'package:flutter/gestures.dart';
import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart';
import 'package:get/get.dart';
import 'package:hgmj/assets_tool/images.dart';
import 'package:hgmj/config/config.dart';
import 'package:hgmj/hj_model/splash/domain_source_model.dart';
import 'package:hgmj/hj_utils/screen.dart';
import 'package:wydj/assets_tool/images.dart';
import 'package:wydj/config/config.dart';
import 'package:wydj/hj_model/splash/domain_source_model.dart';
import 'package:wydj/hj_utils/screen.dart';
import '../../../hj_utils/api_service/vid_service.dart';
import '../../../routers/jump_router.dart';
@@ -44,7 +44,8 @@ class HomeTxtMarQuee extends StatefulWidget {
}
}
class HomeTxtMarQueeState extends State<HomeTxtMarQuee> with SingleTickerProviderStateMixin {
class HomeTxtMarQueeState extends State<HomeTxtMarQuee>
with SingleTickerProviderStateMixin {
List<MarqueeModel>? marquees;
bool isShow = true;
@@ -100,14 +101,16 @@ class HomeTxtMarQueeState extends State<HomeTxtMarQuee> with SingleTickerProvide
height: widget.height ?? 36,
alignment: Alignment.centerLeft,
margin: widget.margin,
padding: widget.padding ?? EdgeInsets.only(left: 14, right: 14, top: 8, bottom: 8),
padding: widget.padding ??
EdgeInsets.only(left: 14, right: 14, top: 8, bottom: 8),
decoration: BoxDecoration(
color: Color(0xCC000000),
borderRadius: BorderRadius.circular(widget.borderRadius),
),
child: Row(
children: [
Image.asset("icon_broadcast.png".commonImgPath, width: widget.iconSize ?? 20),
Image.asset("icon_broadcast.png".commonImgPath,
width: widget.iconSize ?? 20),
6.sizeBoxW,
Expanded(
child: InfiniteMarquee(
@@ -122,7 +125,10 @@ class HomeTxtMarQueeState extends State<HomeTxtMarQuee> with SingleTickerProvide
},
child: Text(
model.content ?? '',
style: TextStyle(color: Color(0xE5FFFFFF), fontSize: widget.fontSize ?? 12, height: 1.4),
style: TextStyle(
color: Color(0xE5FFFFFF),
fontSize: widget.fontSize ?? 12,
height: 1.4),
),
);
},
@@ -149,7 +155,8 @@ class InfiniteMarquee extends StatefulWidget {
/// 自定义内容
final IndexedWidgetBuilder itemBuilder;
InfiniteMarquee({super.key,
InfiniteMarquee({
super.key,
this.stepOffset = 0.5,
required this.itemBuilder,
});
@@ -212,7 +219,8 @@ class _InfiniteMarqueeState extends State<InfiniteMarquee> {
controller: _controller,
itemBuilder: widget.itemBuilder,
physics: NeverScrollableScrollPhysics(),
separatorBuilder: (BuildContext context, int index) => SizedBox(width: Get.width - 100),
separatorBuilder: (BuildContext context, int index) =>
SizedBox(width: Get.width - 100),
anchor: 0,
);
}
@@ -239,7 +247,7 @@ class InfiniteListView extends StatefulWidget {
this.keyboardDismissBehavior = ScrollViewKeyboardDismissBehavior.manual,
this.restorationId,
this.clipBehavior = Clip.hardEdge,
}) : separatorBuilder = null;
}) : separatorBuilder = null;
/// See [ListView.separated]
const InfiniteListView.separated({
@@ -261,7 +269,7 @@ class InfiniteListView extends StatefulWidget {
this.keyboardDismissBehavior = ScrollViewKeyboardDismissBehavior.manual,
this.restorationId,
this.clipBehavior = Clip.hardEdge,
}) : itemExtent = null;
}) : itemExtent = null;
/// See: [ScrollView.scrollDirection]
final Axis scrollDirection;
@@ -324,7 +332,8 @@ class InfiniteListView extends StatefulWidget {
class _InfiniteListViewState extends State<InfiniteListView> {
InfiniteScrollController? _controller;
InfiniteScrollController get _effectiveController => widget.controller ?? _controller!;
InfiniteScrollController get _effectiveController =>
widget.controller ?? _controller!;
@override
void initState() {
@@ -356,7 +365,8 @@ class _InfiniteListViewState extends State<InfiniteListView> {
final List<Widget> slivers = _buildSlivers(context, negative: false);
final List<Widget> negativeSlivers = _buildSlivers(context, negative: true);
final AxisDirection axisDirection = _getDirection(context);
final scrollPhysics = widget.physics ?? const AlwaysScrollableScrollPhysics();
final scrollPhysics =
widget.physics ?? const AlwaysScrollableScrollPhysics();
return Scrollable(
axisDirection: axisDirection,
controller: _effectiveController,
@@ -403,7 +413,8 @@ class _InfiniteListViewState extends State<InfiniteListView> {
}
AxisDirection _getDirection(BuildContext context) {
return getAxisDirectionFromAxisReverseAndDirectionality(context, widget.scrollDirection, widget.reverse);
return getAxisDirectionFromAxisReverseAndDirectionality(
context, widget.scrollDirection, widget.reverse);
}
List<Widget> _buildSlivers(BuildContext context, {bool negative = false}) {
@@ -411,14 +422,20 @@ class _InfiniteListViewState extends State<InfiniteListView> {
final padding = widget.padding ?? EdgeInsets.zero;
return <Widget>[
SliverPadding(
padding: negative ? padding - EdgeInsets.only(bottom: padding.bottom) : padding - EdgeInsets.only(top: padding.top),
padding: negative
? padding - EdgeInsets.only(bottom: padding.bottom)
: padding - EdgeInsets.only(top: padding.top),
sliver: (itemExtent != null)
? SliverFixedExtentList(
delegate: negative ? negativeChildrenDelegate : positiveChildrenDelegate,
delegate: negative
? negativeChildrenDelegate
: positiveChildrenDelegate,
itemExtent: itemExtent,
)
: SliverList(
delegate: negative ? negativeChildrenDelegate : positiveChildrenDelegate,
delegate: negative
? negativeChildrenDelegate
: positiveChildrenDelegate,
),
)
];
@@ -430,7 +447,9 @@ class _InfiniteListViewState extends State<InfiniteListView> {
final separatorBuilder = widget.separatorBuilder;
if (separatorBuilder != null) {
final itemIndex = (-1 - index) ~/ 2;
return index.isOdd ? widget.itemBuilder(context, itemIndex) : separatorBuilder(context, itemIndex);
return index.isOdd
? widget.itemBuilder(context, itemIndex)
: separatorBuilder(context, itemIndex);
} else {
return widget.itemBuilder(context, -1 - index);
}
@@ -448,10 +467,14 @@ class _InfiniteListViewState extends State<InfiniteListView> {
(separatorBuilder != null)
? (BuildContext context, int index) {
final itemIndex = index ~/ 2;
return index.isEven ? widget.itemBuilder(context, itemIndex) : separatorBuilder(context, itemIndex);
return index.isEven
? widget.itemBuilder(context, itemIndex)
: separatorBuilder(context, itemIndex);
}
: widget.itemBuilder,
childCount: separatorBuilder == null ? itemCount : (itemCount != null ? max(0, itemCount * 2 - 1) : null),
childCount: separatorBuilder == null
? itemCount
: (itemCount != null ? max(0, itemCount * 2 - 1) : null),
addAutomaticKeepAlives: widget.addAutomaticKeepAlives,
addRepaintBoundaries: widget.addRepaintBoundaries,
);
@@ -460,13 +483,22 @@ class _InfiniteListViewState extends State<InfiniteListView> {
@override
void debugFillProperties(DiagnosticPropertiesBuilder properties) {
super.debugFillProperties(properties);
properties.add(EnumProperty<Axis>('scrollDirection', widget.scrollDirection));
properties.add(FlagProperty('reverse', value: widget.reverse, ifTrue: 'reversed', showName: true));
properties.add(DiagnosticsProperty<ScrollController>('controller', widget.controller, showName: false, defaultValue: null));
properties.add(DiagnosticsProperty<ScrollPhysics>('physics', widget.physics, showName: false, defaultValue: null));
properties.add(DiagnosticsProperty<EdgeInsetsGeometry>('padding', widget.padding, defaultValue: null));
properties.add(DoubleProperty('itemExtent', widget.itemExtent, defaultValue: null));
properties.add(DoubleProperty('cacheExtent', widget.cacheExtent, defaultValue: null));
properties
.add(EnumProperty<Axis>('scrollDirection', widget.scrollDirection));
properties.add(FlagProperty('reverse',
value: widget.reverse, ifTrue: 'reversed', showName: true));
properties.add(DiagnosticsProperty<ScrollController>(
'controller', widget.controller,
showName: false, defaultValue: null));
properties.add(DiagnosticsProperty<ScrollPhysics>('physics', widget.physics,
showName: false, defaultValue: null));
properties.add(DiagnosticsProperty<EdgeInsetsGeometry>(
'padding', widget.padding,
defaultValue: null));
properties.add(
DoubleProperty('itemExtent', widget.itemExtent, defaultValue: null));
properties.add(
DoubleProperty('cacheExtent', widget.cacheExtent, defaultValue: null));
}
}
@@ -480,7 +512,8 @@ class InfiniteScrollController extends ScrollController {
});
@override
ScrollPosition createScrollPosition(ScrollPhysics physics, ScrollContext context, ScrollPosition? oldPosition) {
ScrollPosition createScrollPosition(ScrollPhysics physics,
ScrollContext context, ScrollPosition? oldPosition) {
return _InfiniteScrollPosition(
physics: physics,
context: context,
@@ -1,10 +1,10 @@
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart';
import 'package:hgmj/assets_tool/app_colors.dart';
import 'package:hgmj/assets_tool/images.dart';
import 'package:hgmj/hj_utils/screen.dart'; // sizeBoxH/sizeBoxW 扩展
import 'package:hgmj/tools_base/widget/sheet_handle_bar.dart';
import 'package:wydj/assets_tool/app_colors.dart';
import 'package:wydj/assets_tool/images.dart';
import 'package:wydj/hj_utils/screen.dart'; // sizeBoxH/sizeBoxW 扩展
import 'package:wydj/tools_base/widget/sheet_handle_bar.dart';
import '../../community/publish_page/publish_page.dart';
@@ -27,7 +27,8 @@ class PublishButton extends StatelessWidget {
@override
Widget build(BuildContext context) {
return GestureDetector(
onTap: () => Get.bottomSheet(CommunityPublishBottomSheet(), isScrollControlled: true, isDismissible: true),
onTap: () => Get.bottomSheet(CommunityPublishBottomSheet(),
isScrollControlled: true, isDismissible: true),
child: Image.asset(
entry.realPath(),
width: entry.width.w,
@@ -44,8 +45,14 @@ class CommunityPublishBottomSheet extends StatelessWidget {
Widget build(BuildContext context) {
return Container(
// 底部加系统安全区,避免手势导航条遮住按钮(如 vivo iQOO 13)
padding: EdgeInsets.only(left: 18.w, right: 18.w, top: 18, bottom: 18 + Get.mediaQuery.padding.bottom),
decoration: BoxDecoration(color: AppColors.primaryColor, borderRadius: BorderRadius.vertical(top: Radius.circular(13))),
padding: EdgeInsets.only(
left: 18.w,
right: 18.w,
top: 18,
bottom: 18 + Get.mediaQuery.padding.bottom),
decoration: BoxDecoration(
color: AppColors.primaryColor,
borderRadius: BorderRadius.vertical(top: Radius.circular(13))),
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
@@ -53,7 +60,10 @@ class CommunityPublishBottomSheet extends StatelessWidget {
18.sizeBoxH,
Text(
'选择发布类型',
style: TextStyle(color: Colors.white, fontSize: 20.sp, fontWeight: FontWeight.w500),
style: TextStyle(
color: Colors.white,
fontSize: 20.sp,
fontWeight: FontWeight.w500),
),
18.h.sizeBoxH,
Row(
@@ -63,7 +73,8 @@ class CommunityPublishBottomSheet extends StatelessWidget {
40.sizeBoxW,
_publishItem('publish_video.webp', '视频', PublishType.homeVideo),
40.sizeBoxW,
_publishItem('publish_img_text.webp', '图文', PublishType.homeImgText),
_publishItem(
'publish_img_text.webp', '图文', PublishType.homeImgText),
],
),
],
@@ -83,7 +94,9 @@ class CommunityPublishBottomSheet extends StatelessWidget {
children: [
Image.asset(img.communityPath, width: 45.w, height: 45.w),
4.sizeBoxH,
Text(label, style: TextStyle(color: const Color(0xffa3a2a2), fontSize: 18.sp)),
Text(label,
style:
TextStyle(color: const Color(0xffa3a2a2), fontSize: 18.sp)),
],
),
);
@@ -2,9 +2,9 @@ import 'dart:math';
import 'package:easy_rich_text/easy_rich_text.dart';
import 'package:flutter/material.dart';
import 'package:hgmj/assets_tool/images.dart';
import 'package:hgmj/hj_model/comment/comment_list_res.dart';
import 'package:hgmj/routers/jump_router.dart';
import 'package:wydj/assets_tool/images.dart';
import 'package:wydj/hj_model/comment/comment_list_res.dart';
import 'package:wydj/routers/jump_router.dart';
class QuickSearchView extends StatefulWidget {
final List<CommentLink> dataSource;
+54 -20
View File
@@ -1,10 +1,10 @@
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:get/get.dart';
import 'package:hgmj/assets_tool/app_colors.dart';
import 'package:hgmj/assets_tool/images.dart';
import 'package:hgmj/hj_utils/screen.dart';
import 'package:hgmj/tools_base/global_store/store.dart';
import 'package:wydj/assets_tool/app_colors.dart';
import 'package:wydj/assets_tool/images.dart';
import 'package:wydj/hj_utils/screen.dart';
import 'package:wydj/tools_base/global_store/store.dart';
import 'package:provider/provider.dart';
import '../../mine/mine_vip/mine_charge_coin_page.dart';
@@ -33,7 +33,9 @@ class _SupportUPAlertState extends State<SupportUPAlert> {
});
selectValue.value = widget.selectCoin;
final contain = coins.contains(widget.selectCoin.toString());
if (!contain) textEidtCtr.text = widget.selectCoin == null ? '' : widget.selectCoin.toString();
if (!contain)
textEidtCtr.text =
widget.selectCoin == null ? '' : widget.selectCoin.toString();
checkEnable();
}
@@ -83,7 +85,10 @@ class _SupportUPAlertState extends State<SupportUPAlert> {
),
Text(
widget.isPublish ? '设置价格' : '为喜欢的UP主加油',
style: TextStyle(color: Colors.white.withValues(alpha: .9), fontSize: 20, fontWeight: FontWeight.w500),
style: TextStyle(
color: Colors.white.withValues(alpha: .9),
fontSize: 20,
fontWeight: FontWeight.w500),
),
18.sizeBoxH,
Container(
@@ -96,7 +101,8 @@ class _SupportUPAlertState extends State<SupportUPAlert> {
return Wrap(
spacing: 12,
runSpacing: 12,
children: ['10', '20', '30', '40', '50', '60', '70', '80'].map(
children:
['10', '20', '30', '40', '50', '60', '70', '80'].map(
(e) {
final gold = int.tryParse(e);
return Obx(() {
@@ -113,7 +119,9 @@ class _SupportUPAlertState extends State<SupportUPAlert> {
child: Container(
alignment: Alignment.center,
decoration: BoxDecoration(
color: (gold != null && select) ? AppColors.actionRed : Color(0x0DFFFFFF),
color: (gold != null && select)
? AppColors.actionRed
: Color(0x0DFFFFFF),
borderRadius: BorderRadius.circular(10),
border: (gold != null && select)
? Border.all(color: AppColors.actionRed)
@@ -138,10 +146,15 @@ class _SupportUPAlertState extends State<SupportUPAlert> {
),
gradient: LinearGradient(
colors: select
? [Color(0xffFFE8BE), Color(0xffE6B764)]
? [
Color(0xffFFE8BE),
Color(0xffE6B764)
]
: [
Colors.white.withValues(alpha: .55),
Colors.white.withValues(alpha: .55),
Colors.white
.withValues(alpha: .55),
Colors.white
.withValues(alpha: .55),
],
),
)
@@ -163,7 +176,9 @@ class _SupportUPAlertState extends State<SupportUPAlert> {
Container(
margin: EdgeInsets.symmetric(horizontal: 5, vertical: 0),
width: 60,
decoration: BoxDecoration(color: Color(0x33FFFFFF), borderRadius: BorderRadius.circular(6)),
decoration: BoxDecoration(
color: Color(0x33FFFFFF),
borderRadius: BorderRadius.circular(6)),
child: TextField(
controller: textEidtCtr,
focusNode: focusN,
@@ -174,15 +189,22 @@ class _SupportUPAlertState extends State<SupportUPAlert> {
},
keyboardType: TextInputType.number,
maxLength: 4,
inputFormatters: [FilteringTextInputFormatter.allow(RegExp('[0-9]'))],
style: TextStyle(color: Colors.white, fontSize: 14, fontWeight: FontWeight.w500),
inputFormatters: [
FilteringTextInputFormatter.allow(RegExp('[0-9]'))
],
style: TextStyle(
color: Colors.white,
fontSize: 14,
fontWeight: FontWeight.w500),
decoration: InputDecoration(
border: InputBorder.none,
counterText: '',
hintText: '100',
isDense: true,
contentPadding: EdgeInsets.zero,
hintStyle: TextStyle(color: Colors.white.withValues(alpha: .6), fontSize: 12),
hintStyle: TextStyle(
color: Colors.white.withValues(alpha: .6),
fontSize: 12),
),
),
),
@@ -197,7 +219,10 @@ class _SupportUPAlertState extends State<SupportUPAlert> {
if (!widget.isPublish) ...[
Text(
'钱包余额:${store.wallet?.amount ?? 0}',
style: TextStyle(color: Colors.white.withValues(alpha: .6), fontSize: 12, height: 14 / 12),
style: TextStyle(
color: Colors.white.withValues(alpha: .6),
fontSize: 12,
height: 14 / 12),
),
16.sizeBoxH,
],
@@ -207,7 +232,8 @@ class _SupportUPAlertState extends State<SupportUPAlert> {
children: [
Expanded(
child: GestureDetector(
onTap: () => Get.back(result: selectValue.value),
onTap: () =>
Get.back(result: selectValue.value),
child: Container(
height: 54,
alignment: Alignment.center,
@@ -217,7 +243,10 @@ class _SupportUPAlertState extends State<SupportUPAlert> {
),
child: Text(
widget.isPublish ? '确定设置' : '立即打赏',
style: TextStyle(color: Colors.black, fontSize: 18, fontWeight: FontWeight.w500),
style: TextStyle(
color: Colors.black,
fontSize: 18,
fontWeight: FontWeight.w500),
),
),
),
@@ -231,10 +260,15 @@ class _SupportUPAlertState extends State<SupportUPAlert> {
height: 38,
margin: EdgeInsets.symmetric(horizontal: 20),
alignment: Alignment.center,
decoration: BoxDecoration(color: AppColors.actionRed, borderRadius: BorderRadius.circular(3)),
decoration: BoxDecoration(
color: AppColors.actionRed,
borderRadius: BorderRadius.circular(3)),
child: Text(
'余额不足 前往充值',
style: TextStyle(color: Colors.white, fontSize: 16, fontWeight: FontWeight.w500),
style: TextStyle(
color: Colors.white,
fontSize: 16,
fontWeight: FontWeight.w500),
),
),
);
+5 -4
View File
@@ -1,8 +1,8 @@
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:hgmj/hj_model/video_model.dart';
import 'package:hgmj/hj_page/user_center_page/user_center_page.dart';
import 'package:hgmj/tools_base/widget/net_image_widget.dart';
import 'package:wydj/hj_model/video_model.dart';
import 'package:wydj/hj_page/user_center_page/user_center_page.dart';
import 'package:wydj/tools_base/widget/net_image_widget.dart';
class UserAvatar extends StatelessWidget {
final double size;
@@ -39,7 +39,8 @@ class UserAvatar extends StatelessWidget {
GestureDetector(
onTap: onTap ??
() {
Get.to(() => UserCenterPage(uid: model?.uid ?? 0), preventDuplicates: false);
Get.to(() => UserCenterPage(uid: model?.uid ?? 0),
preventDuplicates: false);
},
child: NetworkImageLoader(
imageUrl: model?.portrait ?? '',