diff --git a/lib/common/widgets/badge.dart b/lib/common/widgets/badge.dart index f71ccf552..e3d1a83ea 100644 --- a/lib/common/widgets/badge.dart +++ b/lib/common/widgets/badge.dart @@ -82,26 +82,21 @@ class PBadge extends StatelessWidget { color = theme.onSurfaceVariant; } - late EdgeInsets paddingStyle = const EdgeInsets.symmetric( - vertical: 2, - horizontal: 3, - ); - BorderRadius br = size == PBadgeSize.small - ? const BorderRadius.all(Radius.circular(3)) - : const BorderRadius.all(Radius.circular(4)); + late EdgeInsets paddingStyle = const .symmetric(vertical: 2, horizontal: 3); + final BorderRadius br = size == .small + ? const .all(.circular(3)) + : const .all(.circular(4)); Widget content = Container( padding: padding ?? paddingStyle, decoration: BoxDecoration( borderRadius: br, color: bgColor, - border: Border.all(color: borderColor), + border: .all(color: borderColor), ), child: Text( text!, - textScaler: textScaleFactor != null - ? TextScaler.linear(textScaleFactor!) - : null, + textScaler: textScaleFactor != null ? .linear(textScaleFactor!) : null, style: TextStyle( height: 1, fontSize: fontSize, diff --git a/lib/models_new/music/bgm_detail.dart b/lib/models_new/music/bgm_detail.dart index be9fe3496..7bdb577bc 100644 --- a/lib/models_new/music/bgm_detail.dart +++ b/lib/models_new/music/bgm_detail.dart @@ -15,7 +15,7 @@ class MusicDetail { required this.album, required this.artistsList, required this.listenPv, - required this.musicRank, + required this.achievement, required this.hotSongHeat, required this.musicComment, required this.musicRelation, @@ -26,7 +26,7 @@ class MusicDetail { final String? originArtist; final String? originArtistList; final int? mvAid; - final int? mvCid; + final int mvCid; final String? mvBvid; final String? mvCover; bool? wishListen; @@ -35,7 +35,7 @@ class MusicDetail { final String? album; final List? artistsList; final int? listenPv; - final String? musicRank; + final List achievement; final HotSongHeat? hotSongHeat; final MusicComment? musicComment; final int? musicRelation; @@ -47,7 +47,7 @@ class MusicDetail { originArtist: json["origin_artist"], originArtistList: json["origin_artist_list"], mvAid: json["mv_aid"], - mvCid: json["mv_cid"], + mvCid: json["mv_cid"] ?? 0, mvBvid: json["mv_bvid"], mvCover: json["mv_cover"], wishListen: json["wish_listen"], @@ -58,7 +58,11 @@ class MusicDetail { ?.map((x) => Artist.fromJson(x)) .toList(), listenPv: json["listen_pv"], - musicRank: json["music_rank"], + achievement: [ + ...?json["achievement"], + ?json["music_rank"], + ?json["recreation_rank"], + ], hotSongHeat: json["hot_song_heat"] == null ? null : HotSongHeat.fromJson(json["hot_song_heat"]), diff --git a/lib/pages/music/view.dart b/lib/pages/music/view.dart index 185b76a3f..23dc0258f 100644 --- a/lib/pages/music/view.dart +++ b/lib/pages/music/view.dart @@ -452,35 +452,35 @@ class _MusicDetailPageState extends CommonDynPageState { Wrap( spacing: 16, children: [ - if (!item.musicRank.isNullOrEmpty) - PBadge( - text: item.musicRank, - type: .secondary, - isStack: false, - fontSize: 11, - ), - if (item.mvCid != null && item.mvCid != 0) + if (item.achievement.isNotEmpty) + for (var i in item.achievement) + if (i.isNotEmpty) + PBadge( + text: i, + type: .secondary, + isStack: false, + fontSize: 11, + ), + if (item.mvCid != 0) GestureDetector( onTap: () => PageUtils.toVideoPage( bvid: item.mvBvid, - cid: item.mvCid!, + cid: item.mvCid, aid: item.mvAid, ), child: DecoratedBox( decoration: BoxDecoration( - borderRadius: const BorderRadius.all( - Radius.circular(4), - ), + borderRadius: const .all(.circular(4)), color: theme.colorScheme.secondaryContainer .withValues(alpha: 0.5), ), child: Padding( - padding: const EdgeInsets.symmetric( + padding: const .symmetric( vertical: 3, horizontal: 4, ), child: Row( - mainAxisSize: MainAxisSize.min, + mainAxisSize: .min, children: [ Icon( Icons.play_circle_outline,