mirror of
https://github.com/KRTirtho/spotube.git
synced 2025-12-06 07:29:42 +00:00
Compare commits
4 Commits
b6b583fbfa
...
f6fc9c3525
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f6fc9c3525 | ||
|
|
4072531c62 | ||
|
|
9163f1abe0 | ||
|
|
227909787d |
@ -1,3 +1,3 @@
|
||||
{
|
||||
"flutterSdkVersion": "3.29.0"
|
||||
"flutterSdkVersion": "3.29.1"
|
||||
}
|
||||
2
.vscode/settings.json
vendored
2
.vscode/settings.json
vendored
@ -28,5 +28,5 @@
|
||||
"README.md": "LICENSE,CODE_OF_CONDUCT.md,CONTRIBUTING.md,SECURITY.md,CONTRIBUTION.md,CHANGELOG.md,PRIVACY_POLICY.md",
|
||||
"*.dart": "${capture}.g.dart,${capture}.freezed.dart"
|
||||
},
|
||||
"dart.flutterSdkPath": ".fvm/versions/3.29.0"
|
||||
"dart.flutterSdkPath": ".fvm/versions/3.29.1"
|
||||
}
|
||||
@ -25,9 +25,9 @@
|
||||
android:requestLegacyExternalStorage="true"
|
||||
android:usesCleartextTraffic="true">
|
||||
<!-- Enable Impeller -->
|
||||
<!-- <meta-data
|
||||
<meta-data
|
||||
android:name="io.flutter.embedding.android.EnableImpeller"
|
||||
android:value="false" /> -->
|
||||
android:value="false" />
|
||||
|
||||
<activity
|
||||
android:name="com.ryanheise.audioservice.AudioServiceActivity"
|
||||
|
||||
@ -8,6 +8,7 @@ import 'package:spotube/components/image/universal_image.dart';
|
||||
import 'package:spotube/extensions/image.dart';
|
||||
import 'package:spotube/extensions/string.dart';
|
||||
import 'package:spotube/provider/spotify/spotify.dart';
|
||||
import 'package:spotube/utils/platform.dart';
|
||||
import 'package:stroke_text/stroke_text.dart';
|
||||
|
||||
class GenreSectionCardPlaylistCard extends HookConsumerWidget {
|
||||
@ -21,8 +22,10 @@ class GenreSectionCardPlaylistCard extends HookConsumerWidget {
|
||||
Widget build(BuildContext context, ref) {
|
||||
final theme = Theme.of(context);
|
||||
|
||||
final w = kIsDesktop ? 20 : 0;
|
||||
|
||||
return Container(
|
||||
width: 115 * theme.scaling,
|
||||
width: (115 + w) * theme.scaling,
|
||||
decoration: BoxDecoration(
|
||||
color: theme.colorScheme.background.withAlpha(75),
|
||||
borderRadius: theme.borderRadiusMd,
|
||||
@ -65,7 +68,7 @@ class GenreSectionCardPlaylistCard extends HookConsumerWidget {
|
||||
ref.watch(playlistImageProvider(playlist.id!));
|
||||
return SizedBox(
|
||||
height: 100 * theme.scaling,
|
||||
width: 100 * theme.scaling,
|
||||
width: (100 + w) * theme.scaling,
|
||||
child: Stack(
|
||||
children: [
|
||||
Positioned.fill(
|
||||
@ -107,14 +110,14 @@ class GenreSectionCardPlaylistCard extends HookConsumerWidget {
|
||||
),
|
||||
fit: BoxFit.cover,
|
||||
height: 100 * theme.scaling,
|
||||
width: 100 * theme.scaling,
|
||||
width: (100 + w) * theme.scaling,
|
||||
),
|
||||
),
|
||||
Text(
|
||||
playlist.name!,
|
||||
maxLines: 2,
|
||||
maxLines: 1,
|
||||
overflow: TextOverflow.ellipsis,
|
||||
).semiBold().small(),
|
||||
).xSmall().bold(),
|
||||
if (playlist.description != null)
|
||||
Text(
|
||||
playlist.description?.unescapeHtml().cleanHtml() ?? "",
|
||||
|
||||
@ -99,22 +99,26 @@ class LocalFolderItem extends HookConsumerWidget {
|
||||
itemCount: tracks.length,
|
||||
itemBuilder: (context, index) {
|
||||
final track = tracks[index];
|
||||
return UniversalImage(
|
||||
return Expanded(
|
||||
child: UniversalImage(
|
||||
path: (track.album?.images).asUrlString(
|
||||
placeholder: ImagePlaceholder.albumArt,
|
||||
),
|
||||
fit: BoxFit.cover,
|
||||
),
|
||||
);
|
||||
},
|
||||
),
|
||||
),
|
||||
const Gap(8),
|
||||
Stack(
|
||||
Expanded(
|
||||
child: Stack(
|
||||
children: [
|
||||
Column(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
Center(
|
||||
child: Flexible(
|
||||
child: Text(
|
||||
isDownloadFolder
|
||||
? context.l10n.downloads
|
||||
@ -127,7 +131,9 @@ class LocalFolderItem extends HookConsumerWidget {
|
||||
overflow: TextOverflow.ellipsis,
|
||||
),
|
||||
),
|
||||
Wrap(
|
||||
),
|
||||
Flexible(
|
||||
child: Wrap(
|
||||
spacing: 2,
|
||||
runSpacing: 2,
|
||||
children: [
|
||||
@ -137,13 +143,14 @@ class LocalFolderItem extends HookConsumerWidget {
|
||||
TextSpan(
|
||||
children: [
|
||||
if (index != 0) const TextSpan(text: "/ "),
|
||||
TextSpan(text: segment),
|
||||
TextSpan(text: segment)
|
||||
],
|
||||
),
|
||||
maxLines: 2,
|
||||
).xSmall().muted(),
|
||||
],
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
if (!isDownloadFolder && !isCacheFolder)
|
||||
@ -161,8 +168,8 @@ class LocalFolderItem extends HookConsumerWidget {
|
||||
MenuButton(
|
||||
leading: Icon(SpotubeIcons.folderRemove,
|
||||
color: colorScheme.destructive),
|
||||
child:
|
||||
Text(context.l10n.remove_library_location),
|
||||
child: Text(
|
||||
context.l10n.remove_library_location),
|
||||
onPressed: (context) {
|
||||
final libraryLocations = ref
|
||||
.read(userPreferencesProvider)
|
||||
@ -185,6 +192,7 @@ class LocalFolderItem extends HookConsumerWidget {
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
const Spacer(),
|
||||
],
|
||||
),
|
||||
|
||||
@ -48,7 +48,7 @@ class PlayerView extends HookConsumerWidget {
|
||||
ref.watch(audioPlayerProvider.select((s) => s.activeTrack));
|
||||
final currentTrack = sourcedCurrentTrack ?? currentActiveTrack;
|
||||
final isLocalTrack = currentTrack is LocalTrack;
|
||||
final mediaQuery = MediaQuery.of(context);
|
||||
final mediaQuery = MediaQuery.sizeOf(context);
|
||||
|
||||
final shouldHide = useState(true);
|
||||
|
||||
@ -101,6 +101,8 @@ class PlayerView extends HookConsumerWidget {
|
||||
backgroundColor: Colors.transparent,
|
||||
headers: [
|
||||
SafeArea(
|
||||
minimum: const EdgeInsets.only(top: 80),
|
||||
bottom: false,
|
||||
child: TitleBar(
|
||||
surfaceOpacity: 0,
|
||||
surfaceBlur: 0,
|
||||
|
||||
@ -43,7 +43,9 @@ class RootAppPage extends HookConsumerWidget {
|
||||
final scaffold = MediaQuery.removeViewInsets(
|
||||
context: context,
|
||||
removeBottom: true,
|
||||
child: const Scaffold(
|
||||
child: const SafeArea(
|
||||
top: false,
|
||||
child: Scaffold(
|
||||
footers: [
|
||||
BottomPlayer(),
|
||||
SpotubeNavigationBar(),
|
||||
@ -51,6 +53,7 @@ class RootAppPage extends HookConsumerWidget {
|
||||
floatingFooter: true,
|
||||
child: Sidebar(child: AutoRouter()),
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
return scaffold;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user