mirror of
https://github.com/KRTirtho/spotube.git
synced 2026-02-04 07:52:55 +00:00
Merge 4a7b40207a into 826c8e4dd6
This commit is contained in:
commit
861a6e425e
Binary file not shown.
|
Before Width: | Height: | Size: 285 KiB |
@ -7,16 +7,12 @@ import 'commands/translated.dart';
|
|||||||
import 'commands/untranslated.dart';
|
import 'commands/untranslated.dart';
|
||||||
|
|
||||||
void main(List<String> args) {
|
void main(List<String> args) {
|
||||||
final commandRunner = CommandRunner(
|
final commandRunner = CommandRunner("cli", "Configuration CLI for Spotube");
|
||||||
"cli",
|
|
||||||
"Configuration CLI for Spotube",
|
|
||||||
);
|
|
||||||
|
|
||||||
commandRunner.addCommand(InstallDependenciesCommand());
|
commandRunner.addCommand(InstallDependenciesCommand());
|
||||||
commandRunner.addCommand(BuildCommand());
|
commandRunner.addCommand(BuildCommand());
|
||||||
commandRunner.addCommand(CreditsCommand());
|
commandRunner.addCommand(CreditsCommand());
|
||||||
commandRunner.addCommand(TranslatedCommand());
|
commandRunner.addCommand(TranslatedCommand());
|
||||||
commandRunner.addCommand(UntranslatedCommand());
|
commandRunner.addCommand(UntranslatedCommand());
|
||||||
|
|
||||||
commandRunner.run(args);
|
commandRunner.run(args);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,14 +1,6 @@
|
|||||||
import 'dart:async';
|
|
||||||
|
|
||||||
import 'package:app_links/app_links.dart';
|
import 'package:app_links/app_links.dart';
|
||||||
import 'package:flutter_hooks/flutter_hooks.dart';
|
|
||||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||||
import 'package:spotube/collections/routes.dart';
|
import 'package:spotube/collections/routes.dart';
|
||||||
import 'package:spotube/collections/routes.gr.dart';
|
|
||||||
import 'package:flutter_sharing_intent/flutter_sharing_intent.dart';
|
|
||||||
import 'package:flutter_sharing_intent/model/sharing_file.dart';
|
|
||||||
import 'package:spotube/services/logger/logger.dart';
|
|
||||||
import 'package:spotube/utils/platform.dart';
|
|
||||||
|
|
||||||
final appLinks = AppLinks();
|
final appLinks = AppLinks();
|
||||||
final linkStream = appLinks.stringLinkStream.asBroadcastStream();
|
final linkStream = appLinks.stringLinkStream.asBroadcastStream();
|
||||||
|
|||||||
@ -1,4 +1,3 @@
|
|||||||
import 'package:flutter/services.dart';
|
|
||||||
import 'package:shadcn_flutter/shadcn_flutter.dart';
|
import 'package:shadcn_flutter/shadcn_flutter.dart';
|
||||||
import 'package:flutter_hooks/flutter_hooks.dart';
|
import 'package:flutter_hooks/flutter_hooks.dart';
|
||||||
|
|
||||||
|
|||||||
@ -1,4 +1,3 @@
|
|||||||
import 'package:flutter/services.dart';
|
|
||||||
import 'package:shadcn_flutter/shadcn_flutter.dart';
|
import 'package:shadcn_flutter/shadcn_flutter.dart';
|
||||||
import 'package:flutter_hooks/flutter_hooks.dart';
|
import 'package:flutter_hooks/flutter_hooks.dart';
|
||||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||||
|
|||||||
@ -10,7 +10,14 @@ class BlurCard extends HookConsumerWidget {
|
|||||||
return Container(
|
return Container(
|
||||||
margin: const EdgeInsets.all(16.0),
|
margin: const EdgeInsets.all(16.0),
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
borderRadius: BorderRadius.circular(16),
|
borderRadius: BorderRadius.circular(24),
|
||||||
|
boxShadow: [
|
||||||
|
BoxShadow(
|
||||||
|
color: Colors.black.withOpacity(0.1),
|
||||||
|
blurRadius: 20,
|
||||||
|
offset: const Offset(0, 10),
|
||||||
|
),
|
||||||
|
],
|
||||||
),
|
),
|
||||||
constraints: const BoxConstraints(maxWidth: 400),
|
constraints: const BoxConstraints(maxWidth: 400),
|
||||||
clipBehavior: Clip.antiAlias,
|
clipBehavior: Clip.antiAlias,
|
||||||
@ -18,7 +25,7 @@ class BlurCard extends HookConsumerWidget {
|
|||||||
width: double.infinity,
|
width: double.infinity,
|
||||||
child: SurfaceCard(
|
child: SurfaceCard(
|
||||||
child: Padding(
|
child: Padding(
|
||||||
padding: const EdgeInsets.all(16.0),
|
padding: const EdgeInsets.all(24.0),
|
||||||
child: child,
|
child: child,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|||||||
@ -1,10 +1,5 @@
|
|||||||
import 'package:flutter_undraw/flutter_undraw.dart';
|
|
||||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||||
import 'package:shadcn_flutter/shadcn_flutter.dart';
|
import 'package:shadcn_flutter/shadcn_flutter.dart';
|
||||||
import 'package:shadcn_flutter/shadcn_flutter_extension.dart';
|
|
||||||
import 'package:skeletonizer/skeletonizer.dart';
|
|
||||||
import 'package:spotube/components/horizontal_playbutton_card_view/horizontal_playbutton_card_view.dart';
|
|
||||||
import 'package:spotube/extensions/context.dart';
|
|
||||||
|
|
||||||
@Deprecated(
|
@Deprecated(
|
||||||
"Later a featured playlists API will be added for metadata plugins.")
|
"Later a featured playlists API will be added for metadata plugins.")
|
||||||
|
|||||||
@ -1,5 +1,4 @@
|
|||||||
import 'package:auto_size_text/auto_size_text.dart';
|
import 'package:auto_size_text/auto_size_text.dart';
|
||||||
import 'package:flutter/foundation.dart';
|
|
||||||
import 'package:shadcn_flutter/shadcn_flutter.dart';
|
import 'package:shadcn_flutter/shadcn_flutter.dart';
|
||||||
import 'package:shadcn_flutter/shadcn_flutter_extension.dart';
|
import 'package:shadcn_flutter/shadcn_flutter_extension.dart';
|
||||||
import 'package:spotube/collections/formatters.dart';
|
import 'package:spotube/collections/formatters.dart';
|
||||||
|
|||||||
@ -1,7 +1,6 @@
|
|||||||
import 'package:flutter_hooks/flutter_hooks.dart';
|
import 'package:flutter_hooks/flutter_hooks.dart';
|
||||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||||
import 'package:shadcn_flutter/shadcn_flutter.dart';
|
import 'package:shadcn_flutter/shadcn_flutter.dart';
|
||||||
import 'package:spotube/collections/assets.gen.dart';
|
|
||||||
import 'package:spotube/components/titlebar/titlebar.dart';
|
import 'package:spotube/components/titlebar/titlebar.dart';
|
||||||
import 'package:spotube/extensions/context.dart';
|
import 'package:spotube/extensions/context.dart';
|
||||||
import 'package:spotube/pages/getting_started/sections/greeting.dart';
|
import 'package:spotube/pages/getting_started/sections/greeting.dart';
|
||||||
@ -70,9 +69,13 @@ class GettingStartedPage extends HookConsumerWidget {
|
|||||||
floatingHeader: true,
|
floatingHeader: true,
|
||||||
child: DecoratedBox(
|
child: DecoratedBox(
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
image: DecorationImage(
|
gradient: LinearGradient(
|
||||||
image: Assets.images.bengaliPatternsBg.provider(),
|
begin: Alignment.topLeft,
|
||||||
fit: BoxFit.cover,
|
end: Alignment.bottomRight,
|
||||||
|
colors: [
|
||||||
|
Theme.of(context).colorScheme.primary.withOpacity(0.1),
|
||||||
|
Theme.of(context).colorScheme.background,
|
||||||
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
child: PageView(
|
child: PageView(
|
||||||
|
|||||||
@ -17,7 +17,7 @@ class GettingStartedPageGreetingSection extends HookConsumerWidget {
|
|||||||
child: Column(
|
child: Column(
|
||||||
mainAxisSize: MainAxisSize.min,
|
mainAxisSize: MainAxisSize.min,
|
||||||
children: [
|
children: [
|
||||||
Assets.branding.spotubeLogoPng.image(height: 200),
|
Assets.branding.spotubeLogoPng.image(height: 220),
|
||||||
const Gap(24),
|
const Gap(24),
|
||||||
const Text("Spotube").semiBold().h4(),
|
const Text("Spotube").semiBold().h4(),
|
||||||
const Gap(4),
|
const Gap(4),
|
||||||
@ -27,7 +27,7 @@ class GettingStartedPageGreetingSection extends HookConsumerWidget {
|
|||||||
: context.l10n.freedom_of_music,
|
: context.l10n.freedom_of_music,
|
||||||
textAlign: TextAlign.center,
|
textAlign: TextAlign.center,
|
||||||
).light().large().italic(),
|
).light().large().italic(),
|
||||||
const Gap(84),
|
const Gap(48),
|
||||||
Button.primary(
|
Button.primary(
|
||||||
onPressed: onNext,
|
onPressed: onNext,
|
||||||
trailing: const Icon(SpotubeIcons.angleRight),
|
trailing: const Icon(SpotubeIcons.angleRight),
|
||||||
|
|||||||
@ -168,7 +168,7 @@ class MiniLyricsPage extends HookConsumerWidget {
|
|||||||
child: Column(
|
child: Column(
|
||||||
children: [
|
children: [
|
||||||
if (playlistQueue.activeTrack != null)
|
if (playlistQueue.activeTrack != null)
|
||||||
Text(playlistQueue.activeTrack!.name!).semiBold(),
|
Text(playlistQueue.activeTrack!.name).semiBold(),
|
||||||
if (showLyrics.value)
|
if (showLyrics.value)
|
||||||
Expanded(
|
Expanded(
|
||||||
child: IndexedStack(
|
child: IndexedStack(
|
||||||
|
|||||||
@ -7,7 +7,7 @@ class MetadataPluginRepositoriesNotifier
|
|||||||
extends PaginatedAsyncNotifier<MetadataPluginRepository> {
|
extends PaginatedAsyncNotifier<MetadataPluginRepository> {
|
||||||
MetadataPluginRepositoriesNotifier() : super();
|
MetadataPluginRepositoriesNotifier() : super();
|
||||||
|
|
||||||
Map<String, bool> _hasMore = {};
|
final Map<String, bool> _hasMore = {};
|
||||||
|
|
||||||
@override
|
@override
|
||||||
fetch(int offset, int limit) async {
|
fetch(int offset, int limit) async {
|
||||||
|
|||||||
@ -84,8 +84,8 @@ class WindowsAudioService {
|
|||||||
title: track.name,
|
title: track.name,
|
||||||
albumArtist: track.artists.firstOrNull?.name ?? "Unknown",
|
albumArtist: track.artists.firstOrNull?.name ?? "Unknown",
|
||||||
artist: track.artists.asString(),
|
artist: track.artists.asString(),
|
||||||
album: track.album?.name ?? "Unknown",
|
album: track.album.name ?? "Unknown",
|
||||||
thumbnail: (track.album?.images).asUrlString(
|
thumbnail: (track.album.images).asUrlString(
|
||||||
placeholder: ImagePlaceholder.albumArt,
|
placeholder: ImagePlaceholder.albumArt,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|||||||
12
pubspec.lock
12
pubspec.lock
@ -2376,26 +2376,26 @@ packages:
|
|||||||
dependency: "direct dev"
|
dependency: "direct dev"
|
||||||
description:
|
description:
|
||||||
name: test
|
name: test
|
||||||
sha256: "65e29d831719be0591f7b3b1a32a3cda258ec98c58c7b25f7b84241bc31215bb"
|
sha256: "75906bf273541b676716d1ca7627a17e4c4070a3a16272b7a3dc7da3b9f3f6b7"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.26.2"
|
version: "1.26.3"
|
||||||
test_api:
|
test_api:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: test_api
|
name: test_api
|
||||||
sha256: "522f00f556e73044315fa4585ec3270f1808a4b186c936e612cab0b565ff1e00"
|
sha256: ab2726c1a94d3176a45960b6234466ec367179b87dd74f1611adb1f3b5fb9d55
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.7.6"
|
version: "0.7.7"
|
||||||
test_core:
|
test_core:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: test_core
|
name: test_core
|
||||||
sha256: "80bf5a02b60af04b09e14f6fe68b921aad119493e26e490deaca5993fef1b05a"
|
sha256: "0cc24b5ff94b38d2ae73e1eb43cc302b77964fbf67abad1e296025b78deb53d0"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.6.11"
|
version: "0.6.12"
|
||||||
time:
|
time:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|||||||
@ -270,7 +270,6 @@ flutter_gen:
|
|||||||
output: lib/collections
|
output: lib/collections
|
||||||
|
|
||||||
flutter_native_splash:
|
flutter_native_splash:
|
||||||
background_image: assets/bengali-patterns-bg.jpg
|
|
||||||
image: assets/spotube-logo.png
|
image: assets/spotube-logo.png
|
||||||
branding: assets/branding.png
|
branding: assets/branding.png
|
||||||
android_12:
|
android_12:
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user