chore: add song link text in player view shortcut

This commit is contained in:
Kingkor Roy Tirtho 2024-03-01 19:16:52 +06:00
parent a9a1d4c9dc
commit b0970090b1
4 changed files with 115 additions and 114 deletions

View File

@ -138,12 +138,17 @@ class PlayerView extends HookConsumerWidget {
onPressed: panelController.close, onPressed: panelController.close,
), ),
actions: [ actions: [
IconButton( TextButton.icon(
icon: Assets.logos.songlink.image( icon: Assets.logos.songlinkTransparent.image(
width: 20, width: 20,
height: 20, height: 20,
color: bodyTextColor,
),
label: Text(context.l10n.song_link),
style: TextButton.styleFrom(
foregroundColor: bodyTextColor,
padding: EdgeInsets.zero,
), ),
tooltip: context.l10n.song_link,
onPressed: currentTrack == null onPressed: currentTrack == null
? null ? null
: () { : () {
@ -157,7 +162,8 @@ class PlayerView extends HookConsumerWidget {
icon: const Icon(SpotubeIcons.info, size: 18), icon: const Icon(SpotubeIcons.info, size: 18),
tooltip: context.l10n.details, tooltip: context.l10n.details,
style: IconButton.styleFrom( style: IconButton.styleFrom(
foregroundColor: bodyTextColor), foregroundColor: bodyTextColor,
),
onPressed: currentTrack == null onPressed: currentTrack == null
? null ? null
: () { : () {

View File

@ -47,6 +47,7 @@ class AlbumPage extends HookConsumerWidget {
image: TypeConversionUtils.image_X_UrlString( image: TypeConversionUtils.image_X_UrlString(
album.images, album.images,
placeholder: ImagePlaceholder.albumArt, placeholder: ImagePlaceholder.albumArt,
index: 0,
), ),
title: album.name!, title: album.name!,
description: description:

View File

@ -18,8 +18,7 @@ import 'package:flutter_desktop_tools/flutter_desktop_tools.dart';
class GenrePlaylistsPage extends HookConsumerWidget { class GenrePlaylistsPage extends HookConsumerWidget {
final Category category; final Category category;
const GenrePlaylistsPage({Key? key, required this.category}) const GenrePlaylistsPage({super.key, required this.category});
: super(key: key);
@override @override
Widget build(BuildContext context, ref) { Widget build(BuildContext context, ref) {
@ -51,35 +50,29 @@ class GenrePlaylistsPage extends HookConsumerWidget {
) )
: null, : null,
extendBodyBehindAppBar: true, extendBodyBehindAppBar: true,
body: CustomScrollView( body: DecoratedBox(
decoration: BoxDecoration(
image: DecorationImage(
image: UniversalImage.imageProvider(category.icons!.first.url!),
alignment: Alignment.topCenter,
fit: BoxFit.cover,
colorFilter: ColorFilter.mode(
Colors.black.withOpacity(0.5),
BlendMode.darken,
),
repeat: ImageRepeat.noRepeat,
matchTextDirection: true,
),
),
child: CustomScrollView(
controller: scrollController, controller: scrollController,
slivers: [ slivers: [
SliverAppBar( SliverAppBar(
automaticallyImplyLeading: DesktopTools.platform.isMobile, automaticallyImplyLeading: DesktopTools.platform.isMobile,
expandedHeight: mediaQuery.mdAndDown ? 200 : 150, expandedHeight: mediaQuery.mdAndDown ? 200 : 150,
pinned: true,
floating: false,
title: const Text(""), title: const Text(""),
backgroundColor: Colors.brown.withOpacity(0.7), backgroundColor: Colors.transparent,
flexibleSpace: FlexibleSpaceBar( flexibleSpace: FlexibleSpaceBar(
stretchModes: const [
StretchMode.zoomBackground,
StretchMode.blurBackground,
],
background: DecoratedBox(
decoration: BoxDecoration(
image: DecorationImage(
image: UniversalImage.imageProvider(
category.icons!.first.url!,
),
fit: BoxFit.cover,
),
),
child: BackdropFilter(
filter: ImageFilter.blur(sigmaX: 10, sigmaY: 10),
child: const ColoredBox(color: Colors.transparent),
),
),
centerTitle: DesktopTools.platform.isDesktop, centerTitle: DesktopTools.platform.isDesktop,
title: Text( title: Text(
category.name!, category.name!,
@ -169,6 +162,7 @@ class GenrePlaylistsPage extends HookConsumerWidget {
const SliverGap(20), const SliverGap(20),
], ],
), ),
),
); );
} }
} }

View File

@ -15,7 +15,7 @@ import 'package:spotube/provider/user_preferences/user_preferences_provider.dart
import 'package:spotube/services/queries/queries.dart'; import 'package:spotube/services/queries/queries.dart';
class GenrePage extends HookConsumerWidget { class GenrePage extends HookConsumerWidget {
const GenrePage({Key? key}) : super(key: key); const GenrePage({super.key});
@override @override
Widget build(BuildContext context, ref) { Widget build(BuildContext context, ref) {