refactor: move scrobbler to their own place

This commit is contained in:
Kingkor Roy Tirtho 2025-08-19 20:22:48 +06:00
parent c0dcc87eb2
commit 08d1c98674
4 changed files with 287 additions and 200 deletions

View File

@ -108,6 +108,10 @@ class AppRouter extends RootStackRouter {
path: "settings/about",
page: AboutSpotubeRoute.page,
),
AutoRoute(
path: "settings/scrobbling",
page: SettingsScrobblingRoute.page,
),
AutoRoute(
path: "album/:id",
page: AlbumRoute.page,

View File

@ -8,10 +8,10 @@
// coverage:ignore-file
// ignore_for_file: no_leading_underscores_for_library_prefixes
import 'package:auto_route/auto_route.dart' as _i40;
import 'package:flutter/material.dart' as _i41;
import 'package:shadcn_flutter/shadcn_flutter.dart' as _i43;
import 'package:spotube/models/metadata/metadata.dart' as _i42;
import 'package:auto_route/auto_route.dart' as _i41;
import 'package:flutter/material.dart' as _i42;
import 'package:shadcn_flutter/shadcn_flutter.dart' as _i44;
import 'package:spotube/models/metadata/metadata.dart' as _i43;
import 'package:spotube/pages/album/album.dart' as _i2;
import 'package:spotube/pages/artist/artist.dart' as _i3;
import 'package:spotube/pages/connect/connect.dart' as _i6;
@ -21,14 +21,14 @@ import 'package:spotube/pages/home/home.dart' as _i9;
import 'package:spotube/pages/home/sections/section_items.dart' as _i8;
import 'package:spotube/pages/lastfm_login/lastfm_login.dart' as _i10;
import 'package:spotube/pages/library/library.dart' as _i11;
import 'package:spotube/pages/library/user_albums.dart' as _i35;
import 'package:spotube/pages/library/user_artists.dart' as _i36;
import 'package:spotube/pages/library/user_downloads.dart' as _i37;
import 'package:spotube/pages/library/user_albums.dart' as _i36;
import 'package:spotube/pages/library/user_artists.dart' as _i37;
import 'package:spotube/pages/library/user_downloads.dart' as _i38;
import 'package:spotube/pages/library/user_local_tracks/local_folder.dart'
as _i13;
import 'package:spotube/pages/library/user_local_tracks/user_local_tracks.dart'
as _i38;
import 'package:spotube/pages/library/user_playlists.dart' as _i39;
as _i39;
import 'package:spotube/pages/library/user_playlists.dart' as _i40;
import 'package:spotube/pages/lyrics/lyrics.dart' as _i15;
import 'package:spotube/pages/lyrics/mini_lyrics.dart' as _i16;
import 'package:spotube/pages/player/lyrics.dart' as _i17;
@ -44,20 +44,21 @@ import 'package:spotube/pages/settings/blacklist.dart' as _i4;
import 'package:spotube/pages/settings/logs.dart' as _i14;
import 'package:spotube/pages/settings/metadata/metadata_form.dart' as _i24;
import 'package:spotube/pages/settings/metadata_plugins.dart' as _i25;
import 'package:spotube/pages/settings/scrobbling/scrobbling.dart' as _i27;
import 'package:spotube/pages/settings/settings.dart' as _i26;
import 'package:spotube/pages/stats/albums/albums.dart' as _i27;
import 'package:spotube/pages/stats/artists/artists.dart' as _i28;
import 'package:spotube/pages/stats/fees/fees.dart' as _i32;
import 'package:spotube/pages/stats/minutes/minutes.dart' as _i29;
import 'package:spotube/pages/stats/playlists/playlists.dart' as _i31;
import 'package:spotube/pages/stats/stats.dart' as _i30;
import 'package:spotube/pages/stats/streams/streams.dart' as _i33;
import 'package:spotube/pages/track/track.dart' as _i34;
import 'package:spotube/pages/stats/albums/albums.dart' as _i28;
import 'package:spotube/pages/stats/artists/artists.dart' as _i29;
import 'package:spotube/pages/stats/fees/fees.dart' as _i33;
import 'package:spotube/pages/stats/minutes/minutes.dart' as _i30;
import 'package:spotube/pages/stats/playlists/playlists.dart' as _i32;
import 'package:spotube/pages/stats/stats.dart' as _i31;
import 'package:spotube/pages/stats/streams/streams.dart' as _i34;
import 'package:spotube/pages/track/track.dart' as _i35;
/// generated route for
/// [_i1.AboutSpotubePage]
class AboutSpotubeRoute extends _i40.PageRouteInfo<void> {
const AboutSpotubeRoute({List<_i40.PageRouteInfo>? children})
class AboutSpotubeRoute extends _i41.PageRouteInfo<void> {
const AboutSpotubeRoute({List<_i41.PageRouteInfo>? children})
: super(
AboutSpotubeRoute.name,
initialChildren: children,
@ -65,7 +66,7 @@ class AboutSpotubeRoute extends _i40.PageRouteInfo<void> {
static const String name = 'AboutSpotubeRoute';
static _i40.PageInfo page = _i40.PageInfo(
static _i41.PageInfo page = _i41.PageInfo(
name,
builder: (data) {
return const _i1.AboutSpotubePage();
@ -75,12 +76,12 @@ class AboutSpotubeRoute extends _i40.PageRouteInfo<void> {
/// generated route for
/// [_i2.AlbumPage]
class AlbumRoute extends _i40.PageRouteInfo<AlbumRouteArgs> {
class AlbumRoute extends _i41.PageRouteInfo<AlbumRouteArgs> {
AlbumRoute({
_i41.Key? key,
_i42.Key? key,
required String id,
required _i42.SpotubeSimpleAlbumObject album,
List<_i40.PageRouteInfo>? children,
required _i43.SpotubeSimpleAlbumObject album,
List<_i41.PageRouteInfo>? children,
}) : super(
AlbumRoute.name,
args: AlbumRouteArgs(
@ -94,7 +95,7 @@ class AlbumRoute extends _i40.PageRouteInfo<AlbumRouteArgs> {
static const String name = 'AlbumRoute';
static _i40.PageInfo page = _i40.PageInfo(
static _i41.PageInfo page = _i41.PageInfo(
name,
builder: (data) {
final args = data.argsAs<AlbumRouteArgs>();
@ -114,11 +115,11 @@ class AlbumRouteArgs {
required this.album,
});
final _i41.Key? key;
final _i42.Key? key;
final String id;
final _i42.SpotubeSimpleAlbumObject album;
final _i43.SpotubeSimpleAlbumObject album;
@override
String toString() {
@ -128,11 +129,11 @@ class AlbumRouteArgs {
/// generated route for
/// [_i3.ArtistPage]
class ArtistRoute extends _i40.PageRouteInfo<ArtistRouteArgs> {
class ArtistRoute extends _i41.PageRouteInfo<ArtistRouteArgs> {
ArtistRoute({
required String artistId,
_i41.Key? key,
List<_i40.PageRouteInfo>? children,
_i42.Key? key,
List<_i41.PageRouteInfo>? children,
}) : super(
ArtistRoute.name,
args: ArtistRouteArgs(
@ -145,7 +146,7 @@ class ArtistRoute extends _i40.PageRouteInfo<ArtistRouteArgs> {
static const String name = 'ArtistRoute';
static _i40.PageInfo page = _i40.PageInfo(
static _i41.PageInfo page = _i41.PageInfo(
name,
builder: (data) {
final pathParams = data.inheritedPathParams;
@ -167,7 +168,7 @@ class ArtistRouteArgs {
final String artistId;
final _i41.Key? key;
final _i42.Key? key;
@override
String toString() {
@ -177,8 +178,8 @@ class ArtistRouteArgs {
/// generated route for
/// [_i4.BlackListPage]
class BlackListRoute extends _i40.PageRouteInfo<void> {
const BlackListRoute({List<_i40.PageRouteInfo>? children})
class BlackListRoute extends _i41.PageRouteInfo<void> {
const BlackListRoute({List<_i41.PageRouteInfo>? children})
: super(
BlackListRoute.name,
initialChildren: children,
@ -186,7 +187,7 @@ class BlackListRoute extends _i40.PageRouteInfo<void> {
static const String name = 'BlackListRoute';
static _i40.PageInfo page = _i40.PageInfo(
static _i41.PageInfo page = _i41.PageInfo(
name,
builder: (data) {
return const _i4.BlackListPage();
@ -196,8 +197,8 @@ class BlackListRoute extends _i40.PageRouteInfo<void> {
/// generated route for
/// [_i5.ConnectControlPage]
class ConnectControlRoute extends _i40.PageRouteInfo<void> {
const ConnectControlRoute({List<_i40.PageRouteInfo>? children})
class ConnectControlRoute extends _i41.PageRouteInfo<void> {
const ConnectControlRoute({List<_i41.PageRouteInfo>? children})
: super(
ConnectControlRoute.name,
initialChildren: children,
@ -205,7 +206,7 @@ class ConnectControlRoute extends _i40.PageRouteInfo<void> {
static const String name = 'ConnectControlRoute';
static _i40.PageInfo page = _i40.PageInfo(
static _i41.PageInfo page = _i41.PageInfo(
name,
builder: (data) {
return const _i5.ConnectControlPage();
@ -215,8 +216,8 @@ class ConnectControlRoute extends _i40.PageRouteInfo<void> {
/// generated route for
/// [_i6.ConnectPage]
class ConnectRoute extends _i40.PageRouteInfo<void> {
const ConnectRoute({List<_i40.PageRouteInfo>? children})
class ConnectRoute extends _i41.PageRouteInfo<void> {
const ConnectRoute({List<_i41.PageRouteInfo>? children})
: super(
ConnectRoute.name,
initialChildren: children,
@ -224,7 +225,7 @@ class ConnectRoute extends _i40.PageRouteInfo<void> {
static const String name = 'ConnectRoute';
static _i40.PageInfo page = _i40.PageInfo(
static _i41.PageInfo page = _i41.PageInfo(
name,
builder: (data) {
return const _i6.ConnectPage();
@ -234,8 +235,8 @@ class ConnectRoute extends _i40.PageRouteInfo<void> {
/// generated route for
/// [_i7.GettingStartedPage]
class GettingStartedRoute extends _i40.PageRouteInfo<void> {
const GettingStartedRoute({List<_i40.PageRouteInfo>? children})
class GettingStartedRoute extends _i41.PageRouteInfo<void> {
const GettingStartedRoute({List<_i41.PageRouteInfo>? children})
: super(
GettingStartedRoute.name,
initialChildren: children,
@ -243,7 +244,7 @@ class GettingStartedRoute extends _i40.PageRouteInfo<void> {
static const String name = 'GettingStartedRoute';
static _i40.PageInfo page = _i40.PageInfo(
static _i41.PageInfo page = _i41.PageInfo(
name,
builder: (data) {
return const _i7.GettingStartedPage();
@ -254,12 +255,12 @@ class GettingStartedRoute extends _i40.PageRouteInfo<void> {
/// generated route for
/// [_i8.HomeBrowseSectionItemsPage]
class HomeBrowseSectionItemsRoute
extends _i40.PageRouteInfo<HomeBrowseSectionItemsRouteArgs> {
extends _i41.PageRouteInfo<HomeBrowseSectionItemsRouteArgs> {
HomeBrowseSectionItemsRoute({
_i43.Key? key,
_i44.Key? key,
required String sectionId,
required _i42.SpotubeBrowseSectionObject<Object> section,
List<_i40.PageRouteInfo>? children,
required _i43.SpotubeBrowseSectionObject<Object> section,
List<_i41.PageRouteInfo>? children,
}) : super(
HomeBrowseSectionItemsRoute.name,
args: HomeBrowseSectionItemsRouteArgs(
@ -273,7 +274,7 @@ class HomeBrowseSectionItemsRoute
static const String name = 'HomeBrowseSectionItemsRoute';
static _i40.PageInfo page = _i40.PageInfo(
static _i41.PageInfo page = _i41.PageInfo(
name,
builder: (data) {
final args = data.argsAs<HomeBrowseSectionItemsRouteArgs>();
@ -293,11 +294,11 @@ class HomeBrowseSectionItemsRouteArgs {
required this.section,
});
final _i43.Key? key;
final _i44.Key? key;
final String sectionId;
final _i42.SpotubeBrowseSectionObject<Object> section;
final _i43.SpotubeBrowseSectionObject<Object> section;
@override
String toString() {
@ -307,8 +308,8 @@ class HomeBrowseSectionItemsRouteArgs {
/// generated route for
/// [_i9.HomePage]
class HomeRoute extends _i40.PageRouteInfo<void> {
const HomeRoute({List<_i40.PageRouteInfo>? children})
class HomeRoute extends _i41.PageRouteInfo<void> {
const HomeRoute({List<_i41.PageRouteInfo>? children})
: super(
HomeRoute.name,
initialChildren: children,
@ -316,7 +317,7 @@ class HomeRoute extends _i40.PageRouteInfo<void> {
static const String name = 'HomeRoute';
static _i40.PageInfo page = _i40.PageInfo(
static _i41.PageInfo page = _i41.PageInfo(
name,
builder: (data) {
return const _i9.HomePage();
@ -326,8 +327,8 @@ class HomeRoute extends _i40.PageRouteInfo<void> {
/// generated route for
/// [_i10.LastFMLoginPage]
class LastFMLoginRoute extends _i40.PageRouteInfo<void> {
const LastFMLoginRoute({List<_i40.PageRouteInfo>? children})
class LastFMLoginRoute extends _i41.PageRouteInfo<void> {
const LastFMLoginRoute({List<_i41.PageRouteInfo>? children})
: super(
LastFMLoginRoute.name,
initialChildren: children,
@ -335,7 +336,7 @@ class LastFMLoginRoute extends _i40.PageRouteInfo<void> {
static const String name = 'LastFMLoginRoute';
static _i40.PageInfo page = _i40.PageInfo(
static _i41.PageInfo page = _i41.PageInfo(
name,
builder: (data) {
return const _i10.LastFMLoginPage();
@ -345,8 +346,8 @@ class LastFMLoginRoute extends _i40.PageRouteInfo<void> {
/// generated route for
/// [_i11.LibraryPage]
class LibraryRoute extends _i40.PageRouteInfo<void> {
const LibraryRoute({List<_i40.PageRouteInfo>? children})
class LibraryRoute extends _i41.PageRouteInfo<void> {
const LibraryRoute({List<_i41.PageRouteInfo>? children})
: super(
LibraryRoute.name,
initialChildren: children,
@ -354,7 +355,7 @@ class LibraryRoute extends _i40.PageRouteInfo<void> {
static const String name = 'LibraryRoute';
static _i40.PageInfo page = _i40.PageInfo(
static _i41.PageInfo page = _i41.PageInfo(
name,
builder: (data) {
return const _i11.LibraryPage();
@ -364,11 +365,11 @@ class LibraryRoute extends _i40.PageRouteInfo<void> {
/// generated route for
/// [_i12.LikedPlaylistPage]
class LikedPlaylistRoute extends _i40.PageRouteInfo<LikedPlaylistRouteArgs> {
class LikedPlaylistRoute extends _i41.PageRouteInfo<LikedPlaylistRouteArgs> {
LikedPlaylistRoute({
_i41.Key? key,
required _i42.SpotubeSimplePlaylistObject playlist,
List<_i40.PageRouteInfo>? children,
_i42.Key? key,
required _i43.SpotubeSimplePlaylistObject playlist,
List<_i41.PageRouteInfo>? children,
}) : super(
LikedPlaylistRoute.name,
args: LikedPlaylistRouteArgs(
@ -380,7 +381,7 @@ class LikedPlaylistRoute extends _i40.PageRouteInfo<LikedPlaylistRouteArgs> {
static const String name = 'LikedPlaylistRoute';
static _i40.PageInfo page = _i40.PageInfo(
static _i41.PageInfo page = _i41.PageInfo(
name,
builder: (data) {
final args = data.argsAs<LikedPlaylistRouteArgs>();
@ -398,9 +399,9 @@ class LikedPlaylistRouteArgs {
required this.playlist,
});
final _i41.Key? key;
final _i42.Key? key;
final _i42.SpotubeSimplePlaylistObject playlist;
final _i43.SpotubeSimplePlaylistObject playlist;
@override
String toString() {
@ -410,13 +411,13 @@ class LikedPlaylistRouteArgs {
/// generated route for
/// [_i13.LocalLibraryPage]
class LocalLibraryRoute extends _i40.PageRouteInfo<LocalLibraryRouteArgs> {
class LocalLibraryRoute extends _i41.PageRouteInfo<LocalLibraryRouteArgs> {
LocalLibraryRoute({
required String location,
_i41.Key? key,
_i42.Key? key,
bool isDownloads = false,
bool isCache = false,
List<_i40.PageRouteInfo>? children,
List<_i41.PageRouteInfo>? children,
}) : super(
LocalLibraryRoute.name,
args: LocalLibraryRouteArgs(
@ -430,7 +431,7 @@ class LocalLibraryRoute extends _i40.PageRouteInfo<LocalLibraryRouteArgs> {
static const String name = 'LocalLibraryRoute';
static _i40.PageInfo page = _i40.PageInfo(
static _i41.PageInfo page = _i41.PageInfo(
name,
builder: (data) {
final args = data.argsAs<LocalLibraryRouteArgs>();
@ -454,7 +455,7 @@ class LocalLibraryRouteArgs {
final String location;
final _i41.Key? key;
final _i42.Key? key;
final bool isDownloads;
@ -468,8 +469,8 @@ class LocalLibraryRouteArgs {
/// generated route for
/// [_i14.LogsPage]
class LogsRoute extends _i40.PageRouteInfo<void> {
const LogsRoute({List<_i40.PageRouteInfo>? children})
class LogsRoute extends _i41.PageRouteInfo<void> {
const LogsRoute({List<_i41.PageRouteInfo>? children})
: super(
LogsRoute.name,
initialChildren: children,
@ -477,7 +478,7 @@ class LogsRoute extends _i40.PageRouteInfo<void> {
static const String name = 'LogsRoute';
static _i40.PageInfo page = _i40.PageInfo(
static _i41.PageInfo page = _i41.PageInfo(
name,
builder: (data) {
return const _i14.LogsPage();
@ -487,8 +488,8 @@ class LogsRoute extends _i40.PageRouteInfo<void> {
/// generated route for
/// [_i15.LyricsPage]
class LyricsRoute extends _i40.PageRouteInfo<void> {
const LyricsRoute({List<_i40.PageRouteInfo>? children})
class LyricsRoute extends _i41.PageRouteInfo<void> {
const LyricsRoute({List<_i41.PageRouteInfo>? children})
: super(
LyricsRoute.name,
initialChildren: children,
@ -496,7 +497,7 @@ class LyricsRoute extends _i40.PageRouteInfo<void> {
static const String name = 'LyricsRoute';
static _i40.PageInfo page = _i40.PageInfo(
static _i41.PageInfo page = _i41.PageInfo(
name,
builder: (data) {
return const _i15.LyricsPage();
@ -506,11 +507,11 @@ class LyricsRoute extends _i40.PageRouteInfo<void> {
/// generated route for
/// [_i16.MiniLyricsPage]
class MiniLyricsRoute extends _i40.PageRouteInfo<MiniLyricsRouteArgs> {
class MiniLyricsRoute extends _i41.PageRouteInfo<MiniLyricsRouteArgs> {
MiniLyricsRoute({
_i43.Key? key,
required _i43.Size prevSize,
List<_i40.PageRouteInfo>? children,
_i44.Key? key,
required _i44.Size prevSize,
List<_i41.PageRouteInfo>? children,
}) : super(
MiniLyricsRoute.name,
args: MiniLyricsRouteArgs(
@ -522,7 +523,7 @@ class MiniLyricsRoute extends _i40.PageRouteInfo<MiniLyricsRouteArgs> {
static const String name = 'MiniLyricsRoute';
static _i40.PageInfo page = _i40.PageInfo(
static _i41.PageInfo page = _i41.PageInfo(
name,
builder: (data) {
final args = data.argsAs<MiniLyricsRouteArgs>();
@ -540,9 +541,9 @@ class MiniLyricsRouteArgs {
required this.prevSize,
});
final _i43.Key? key;
final _i44.Key? key;
final _i43.Size prevSize;
final _i44.Size prevSize;
@override
String toString() {
@ -552,8 +553,8 @@ class MiniLyricsRouteArgs {
/// generated route for
/// [_i17.PlayerLyricsPage]
class PlayerLyricsRoute extends _i40.PageRouteInfo<void> {
const PlayerLyricsRoute({List<_i40.PageRouteInfo>? children})
class PlayerLyricsRoute extends _i41.PageRouteInfo<void> {
const PlayerLyricsRoute({List<_i41.PageRouteInfo>? children})
: super(
PlayerLyricsRoute.name,
initialChildren: children,
@ -561,7 +562,7 @@ class PlayerLyricsRoute extends _i40.PageRouteInfo<void> {
static const String name = 'PlayerLyricsRoute';
static _i40.PageInfo page = _i40.PageInfo(
static _i41.PageInfo page = _i41.PageInfo(
name,
builder: (data) {
return const _i17.PlayerLyricsPage();
@ -571,8 +572,8 @@ class PlayerLyricsRoute extends _i40.PageRouteInfo<void> {
/// generated route for
/// [_i18.PlayerQueuePage]
class PlayerQueueRoute extends _i40.PageRouteInfo<void> {
const PlayerQueueRoute({List<_i40.PageRouteInfo>? children})
class PlayerQueueRoute extends _i41.PageRouteInfo<void> {
const PlayerQueueRoute({List<_i41.PageRouteInfo>? children})
: super(
PlayerQueueRoute.name,
initialChildren: children,
@ -580,7 +581,7 @@ class PlayerQueueRoute extends _i40.PageRouteInfo<void> {
static const String name = 'PlayerQueueRoute';
static _i40.PageInfo page = _i40.PageInfo(
static _i41.PageInfo page = _i41.PageInfo(
name,
builder: (data) {
return const _i18.PlayerQueuePage();
@ -590,8 +591,8 @@ class PlayerQueueRoute extends _i40.PageRouteInfo<void> {
/// generated route for
/// [_i19.PlayerTrackSourcesPage]
class PlayerTrackSourcesRoute extends _i40.PageRouteInfo<void> {
const PlayerTrackSourcesRoute({List<_i40.PageRouteInfo>? children})
class PlayerTrackSourcesRoute extends _i41.PageRouteInfo<void> {
const PlayerTrackSourcesRoute({List<_i41.PageRouteInfo>? children})
: super(
PlayerTrackSourcesRoute.name,
initialChildren: children,
@ -599,7 +600,7 @@ class PlayerTrackSourcesRoute extends _i40.PageRouteInfo<void> {
static const String name = 'PlayerTrackSourcesRoute';
static _i40.PageInfo page = _i40.PageInfo(
static _i41.PageInfo page = _i41.PageInfo(
name,
builder: (data) {
return const _i19.PlayerTrackSourcesPage();
@ -609,12 +610,12 @@ class PlayerTrackSourcesRoute extends _i40.PageRouteInfo<void> {
/// generated route for
/// [_i20.PlaylistPage]
class PlaylistRoute extends _i40.PageRouteInfo<PlaylistRouteArgs> {
class PlaylistRoute extends _i41.PageRouteInfo<PlaylistRouteArgs> {
PlaylistRoute({
_i41.Key? key,
_i42.Key? key,
required String id,
required _i42.SpotubeSimplePlaylistObject playlist,
List<_i40.PageRouteInfo>? children,
required _i43.SpotubeSimplePlaylistObject playlist,
List<_i41.PageRouteInfo>? children,
}) : super(
PlaylistRoute.name,
args: PlaylistRouteArgs(
@ -628,7 +629,7 @@ class PlaylistRoute extends _i40.PageRouteInfo<PlaylistRouteArgs> {
static const String name = 'PlaylistRoute';
static _i40.PageInfo page = _i40.PageInfo(
static _i41.PageInfo page = _i41.PageInfo(
name,
builder: (data) {
final args = data.argsAs<PlaylistRouteArgs>();
@ -648,11 +649,11 @@ class PlaylistRouteArgs {
required this.playlist,
});
final _i41.Key? key;
final _i42.Key? key;
final String id;
final _i42.SpotubeSimplePlaylistObject playlist;
final _i43.SpotubeSimplePlaylistObject playlist;
@override
String toString() {
@ -662,8 +663,8 @@ class PlaylistRouteArgs {
/// generated route for
/// [_i21.ProfilePage]
class ProfileRoute extends _i40.PageRouteInfo<void> {
const ProfileRoute({List<_i40.PageRouteInfo>? children})
class ProfileRoute extends _i41.PageRouteInfo<void> {
const ProfileRoute({List<_i41.PageRouteInfo>? children})
: super(
ProfileRoute.name,
initialChildren: children,
@ -671,7 +672,7 @@ class ProfileRoute extends _i40.PageRouteInfo<void> {
static const String name = 'ProfileRoute';
static _i40.PageInfo page = _i40.PageInfo(
static _i41.PageInfo page = _i41.PageInfo(
name,
builder: (data) {
return const _i21.ProfilePage();
@ -681,8 +682,8 @@ class ProfileRoute extends _i40.PageRouteInfo<void> {
/// generated route for
/// [_i22.RootAppPage]
class RootAppRoute extends _i40.PageRouteInfo<void> {
const RootAppRoute({List<_i40.PageRouteInfo>? children})
class RootAppRoute extends _i41.PageRouteInfo<void> {
const RootAppRoute({List<_i41.PageRouteInfo>? children})
: super(
RootAppRoute.name,
initialChildren: children,
@ -690,7 +691,7 @@ class RootAppRoute extends _i40.PageRouteInfo<void> {
static const String name = 'RootAppRoute';
static _i40.PageInfo page = _i40.PageInfo(
static _i41.PageInfo page = _i41.PageInfo(
name,
builder: (data) {
return const _i22.RootAppPage();
@ -700,8 +701,8 @@ class RootAppRoute extends _i40.PageRouteInfo<void> {
/// generated route for
/// [_i23.SearchPage]
class SearchRoute extends _i40.PageRouteInfo<void> {
const SearchRoute({List<_i40.PageRouteInfo>? children})
class SearchRoute extends _i41.PageRouteInfo<void> {
const SearchRoute({List<_i41.PageRouteInfo>? children})
: super(
SearchRoute.name,
initialChildren: children,
@ -709,7 +710,7 @@ class SearchRoute extends _i40.PageRouteInfo<void> {
static const String name = 'SearchRoute';
static _i40.PageInfo page = _i40.PageInfo(
static _i41.PageInfo page = _i41.PageInfo(
name,
builder: (data) {
return const _i23.SearchPage();
@ -720,12 +721,12 @@ class SearchRoute extends _i40.PageRouteInfo<void> {
/// generated route for
/// [_i24.SettingsMetadataProviderFormPage]
class SettingsMetadataProviderFormRoute
extends _i40.PageRouteInfo<SettingsMetadataProviderFormRouteArgs> {
extends _i41.PageRouteInfo<SettingsMetadataProviderFormRouteArgs> {
SettingsMetadataProviderFormRoute({
_i43.Key? key,
_i44.Key? key,
required String title,
required List<_i42.MetadataFormFieldObject> fields,
List<_i40.PageRouteInfo>? children,
required List<_i43.MetadataFormFieldObject> fields,
List<_i41.PageRouteInfo>? children,
}) : super(
SettingsMetadataProviderFormRoute.name,
args: SettingsMetadataProviderFormRouteArgs(
@ -738,7 +739,7 @@ class SettingsMetadataProviderFormRoute
static const String name = 'SettingsMetadataProviderFormRoute';
static _i40.PageInfo page = _i40.PageInfo(
static _i41.PageInfo page = _i41.PageInfo(
name,
builder: (data) {
final args = data.argsAs<SettingsMetadataProviderFormRouteArgs>();
@ -758,11 +759,11 @@ class SettingsMetadataProviderFormRouteArgs {
required this.fields,
});
final _i43.Key? key;
final _i44.Key? key;
final String title;
final List<_i42.MetadataFormFieldObject> fields;
final List<_i43.MetadataFormFieldObject> fields;
@override
String toString() {
@ -772,8 +773,8 @@ class SettingsMetadataProviderFormRouteArgs {
/// generated route for
/// [_i25.SettingsMetadataProviderPage]
class SettingsMetadataProviderRoute extends _i40.PageRouteInfo<void> {
const SettingsMetadataProviderRoute({List<_i40.PageRouteInfo>? children})
class SettingsMetadataProviderRoute extends _i41.PageRouteInfo<void> {
const SettingsMetadataProviderRoute({List<_i41.PageRouteInfo>? children})
: super(
SettingsMetadataProviderRoute.name,
initialChildren: children,
@ -781,7 +782,7 @@ class SettingsMetadataProviderRoute extends _i40.PageRouteInfo<void> {
static const String name = 'SettingsMetadataProviderRoute';
static _i40.PageInfo page = _i40.PageInfo(
static _i41.PageInfo page = _i41.PageInfo(
name,
builder: (data) {
return const _i25.SettingsMetadataProviderPage();
@ -791,8 +792,8 @@ class SettingsMetadataProviderRoute extends _i40.PageRouteInfo<void> {
/// generated route for
/// [_i26.SettingsPage]
class SettingsRoute extends _i40.PageRouteInfo<void> {
const SettingsRoute({List<_i40.PageRouteInfo>? children})
class SettingsRoute extends _i41.PageRouteInfo<void> {
const SettingsRoute({List<_i41.PageRouteInfo>? children})
: super(
SettingsRoute.name,
initialChildren: children,
@ -800,7 +801,7 @@ class SettingsRoute extends _i40.PageRouteInfo<void> {
static const String name = 'SettingsRoute';
static _i40.PageInfo page = _i40.PageInfo(
static _i41.PageInfo page = _i41.PageInfo(
name,
builder: (data) {
return const _i26.SettingsPage();
@ -809,9 +810,28 @@ class SettingsRoute extends _i40.PageRouteInfo<void> {
}
/// generated route for
/// [_i27.StatsAlbumsPage]
class StatsAlbumsRoute extends _i40.PageRouteInfo<void> {
const StatsAlbumsRoute({List<_i40.PageRouteInfo>? children})
/// [_i27.SettingsScrobblingPage]
class SettingsScrobblingRoute extends _i41.PageRouteInfo<void> {
const SettingsScrobblingRoute({List<_i41.PageRouteInfo>? children})
: super(
SettingsScrobblingRoute.name,
initialChildren: children,
);
static const String name = 'SettingsScrobblingRoute';
static _i41.PageInfo page = _i41.PageInfo(
name,
builder: (data) {
return const _i27.SettingsScrobblingPage();
},
);
}
/// generated route for
/// [_i28.StatsAlbumsPage]
class StatsAlbumsRoute extends _i41.PageRouteInfo<void> {
const StatsAlbumsRoute({List<_i41.PageRouteInfo>? children})
: super(
StatsAlbumsRoute.name,
initialChildren: children,
@ -819,18 +839,18 @@ class StatsAlbumsRoute extends _i40.PageRouteInfo<void> {
static const String name = 'StatsAlbumsRoute';
static _i40.PageInfo page = _i40.PageInfo(
static _i41.PageInfo page = _i41.PageInfo(
name,
builder: (data) {
return const _i27.StatsAlbumsPage();
return const _i28.StatsAlbumsPage();
},
);
}
/// generated route for
/// [_i28.StatsArtistsPage]
class StatsArtistsRoute extends _i40.PageRouteInfo<void> {
const StatsArtistsRoute({List<_i40.PageRouteInfo>? children})
/// [_i29.StatsArtistsPage]
class StatsArtistsRoute extends _i41.PageRouteInfo<void> {
const StatsArtistsRoute({List<_i41.PageRouteInfo>? children})
: super(
StatsArtistsRoute.name,
initialChildren: children,
@ -838,18 +858,18 @@ class StatsArtistsRoute extends _i40.PageRouteInfo<void> {
static const String name = 'StatsArtistsRoute';
static _i40.PageInfo page = _i40.PageInfo(
static _i41.PageInfo page = _i41.PageInfo(
name,
builder: (data) {
return const _i28.StatsArtistsPage();
return const _i29.StatsArtistsPage();
},
);
}
/// generated route for
/// [_i29.StatsMinutesPage]
class StatsMinutesRoute extends _i40.PageRouteInfo<void> {
const StatsMinutesRoute({List<_i40.PageRouteInfo>? children})
/// [_i30.StatsMinutesPage]
class StatsMinutesRoute extends _i41.PageRouteInfo<void> {
const StatsMinutesRoute({List<_i41.PageRouteInfo>? children})
: super(
StatsMinutesRoute.name,
initialChildren: children,
@ -857,18 +877,18 @@ class StatsMinutesRoute extends _i40.PageRouteInfo<void> {
static const String name = 'StatsMinutesRoute';
static _i40.PageInfo page = _i40.PageInfo(
static _i41.PageInfo page = _i41.PageInfo(
name,
builder: (data) {
return const _i29.StatsMinutesPage();
return const _i30.StatsMinutesPage();
},
);
}
/// generated route for
/// [_i30.StatsPage]
class StatsRoute extends _i40.PageRouteInfo<void> {
const StatsRoute({List<_i40.PageRouteInfo>? children})
/// [_i31.StatsPage]
class StatsRoute extends _i41.PageRouteInfo<void> {
const StatsRoute({List<_i41.PageRouteInfo>? children})
: super(
StatsRoute.name,
initialChildren: children,
@ -876,18 +896,18 @@ class StatsRoute extends _i40.PageRouteInfo<void> {
static const String name = 'StatsRoute';
static _i40.PageInfo page = _i40.PageInfo(
static _i41.PageInfo page = _i41.PageInfo(
name,
builder: (data) {
return const _i30.StatsPage();
return const _i31.StatsPage();
},
);
}
/// generated route for
/// [_i31.StatsPlaylistsPage]
class StatsPlaylistsRoute extends _i40.PageRouteInfo<void> {
const StatsPlaylistsRoute({List<_i40.PageRouteInfo>? children})
/// [_i32.StatsPlaylistsPage]
class StatsPlaylistsRoute extends _i41.PageRouteInfo<void> {
const StatsPlaylistsRoute({List<_i41.PageRouteInfo>? children})
: super(
StatsPlaylistsRoute.name,
initialChildren: children,
@ -895,18 +915,18 @@ class StatsPlaylistsRoute extends _i40.PageRouteInfo<void> {
static const String name = 'StatsPlaylistsRoute';
static _i40.PageInfo page = _i40.PageInfo(
static _i41.PageInfo page = _i41.PageInfo(
name,
builder: (data) {
return const _i31.StatsPlaylistsPage();
return const _i32.StatsPlaylistsPage();
},
);
}
/// generated route for
/// [_i32.StatsStreamFeesPage]
class StatsStreamFeesRoute extends _i40.PageRouteInfo<void> {
const StatsStreamFeesRoute({List<_i40.PageRouteInfo>? children})
/// [_i33.StatsStreamFeesPage]
class StatsStreamFeesRoute extends _i41.PageRouteInfo<void> {
const StatsStreamFeesRoute({List<_i41.PageRouteInfo>? children})
: super(
StatsStreamFeesRoute.name,
initialChildren: children,
@ -914,18 +934,18 @@ class StatsStreamFeesRoute extends _i40.PageRouteInfo<void> {
static const String name = 'StatsStreamFeesRoute';
static _i40.PageInfo page = _i40.PageInfo(
static _i41.PageInfo page = _i41.PageInfo(
name,
builder: (data) {
return const _i32.StatsStreamFeesPage();
return const _i33.StatsStreamFeesPage();
},
);
}
/// generated route for
/// [_i33.StatsStreamsPage]
class StatsStreamsRoute extends _i40.PageRouteInfo<void> {
const StatsStreamsRoute({List<_i40.PageRouteInfo>? children})
/// [_i34.StatsStreamsPage]
class StatsStreamsRoute extends _i41.PageRouteInfo<void> {
const StatsStreamsRoute({List<_i41.PageRouteInfo>? children})
: super(
StatsStreamsRoute.name,
initialChildren: children,
@ -933,21 +953,21 @@ class StatsStreamsRoute extends _i40.PageRouteInfo<void> {
static const String name = 'StatsStreamsRoute';
static _i40.PageInfo page = _i40.PageInfo(
static _i41.PageInfo page = _i41.PageInfo(
name,
builder: (data) {
return const _i33.StatsStreamsPage();
return const _i34.StatsStreamsPage();
},
);
}
/// generated route for
/// [_i34.TrackPage]
class TrackRoute extends _i40.PageRouteInfo<TrackRouteArgs> {
/// [_i35.TrackPage]
class TrackRoute extends _i41.PageRouteInfo<TrackRouteArgs> {
TrackRoute({
_i43.Key? key,
_i44.Key? key,
required String trackId,
List<_i40.PageRouteInfo>? children,
List<_i41.PageRouteInfo>? children,
}) : super(
TrackRoute.name,
args: TrackRouteArgs(
@ -960,13 +980,13 @@ class TrackRoute extends _i40.PageRouteInfo<TrackRouteArgs> {
static const String name = 'TrackRoute';
static _i40.PageInfo page = _i40.PageInfo(
static _i41.PageInfo page = _i41.PageInfo(
name,
builder: (data) {
final pathParams = data.inheritedPathParams;
final args = data.argsAs<TrackRouteArgs>(
orElse: () => TrackRouteArgs(trackId: pathParams.getString('id')));
return _i34.TrackPage(
return _i35.TrackPage(
key: args.key,
trackId: args.trackId,
);
@ -980,7 +1000,7 @@ class TrackRouteArgs {
required this.trackId,
});
final _i43.Key? key;
final _i44.Key? key;
final String trackId;
@ -991,9 +1011,9 @@ class TrackRouteArgs {
}
/// generated route for
/// [_i35.UserAlbumsPage]
class UserAlbumsRoute extends _i40.PageRouteInfo<void> {
const UserAlbumsRoute({List<_i40.PageRouteInfo>? children})
/// [_i36.UserAlbumsPage]
class UserAlbumsRoute extends _i41.PageRouteInfo<void> {
const UserAlbumsRoute({List<_i41.PageRouteInfo>? children})
: super(
UserAlbumsRoute.name,
initialChildren: children,
@ -1001,18 +1021,18 @@ class UserAlbumsRoute extends _i40.PageRouteInfo<void> {
static const String name = 'UserAlbumsRoute';
static _i40.PageInfo page = _i40.PageInfo(
static _i41.PageInfo page = _i41.PageInfo(
name,
builder: (data) {
return const _i35.UserAlbumsPage();
return const _i36.UserAlbumsPage();
},
);
}
/// generated route for
/// [_i36.UserArtistsPage]
class UserArtistsRoute extends _i40.PageRouteInfo<void> {
const UserArtistsRoute({List<_i40.PageRouteInfo>? children})
/// [_i37.UserArtistsPage]
class UserArtistsRoute extends _i41.PageRouteInfo<void> {
const UserArtistsRoute({List<_i41.PageRouteInfo>? children})
: super(
UserArtistsRoute.name,
initialChildren: children,
@ -1020,18 +1040,18 @@ class UserArtistsRoute extends _i40.PageRouteInfo<void> {
static const String name = 'UserArtistsRoute';
static _i40.PageInfo page = _i40.PageInfo(
static _i41.PageInfo page = _i41.PageInfo(
name,
builder: (data) {
return const _i36.UserArtistsPage();
return const _i37.UserArtistsPage();
},
);
}
/// generated route for
/// [_i37.UserDownloadsPage]
class UserDownloadsRoute extends _i40.PageRouteInfo<void> {
const UserDownloadsRoute({List<_i40.PageRouteInfo>? children})
/// [_i38.UserDownloadsPage]
class UserDownloadsRoute extends _i41.PageRouteInfo<void> {
const UserDownloadsRoute({List<_i41.PageRouteInfo>? children})
: super(
UserDownloadsRoute.name,
initialChildren: children,
@ -1039,18 +1059,18 @@ class UserDownloadsRoute extends _i40.PageRouteInfo<void> {
static const String name = 'UserDownloadsRoute';
static _i40.PageInfo page = _i40.PageInfo(
static _i41.PageInfo page = _i41.PageInfo(
name,
builder: (data) {
return const _i37.UserDownloadsPage();
return const _i38.UserDownloadsPage();
},
);
}
/// generated route for
/// [_i38.UserLocalLibraryPage]
class UserLocalLibraryRoute extends _i40.PageRouteInfo<void> {
const UserLocalLibraryRoute({List<_i40.PageRouteInfo>? children})
/// [_i39.UserLocalLibraryPage]
class UserLocalLibraryRoute extends _i41.PageRouteInfo<void> {
const UserLocalLibraryRoute({List<_i41.PageRouteInfo>? children})
: super(
UserLocalLibraryRoute.name,
initialChildren: children,
@ -1058,18 +1078,18 @@ class UserLocalLibraryRoute extends _i40.PageRouteInfo<void> {
static const String name = 'UserLocalLibraryRoute';
static _i40.PageInfo page = _i40.PageInfo(
static _i41.PageInfo page = _i41.PageInfo(
name,
builder: (data) {
return const _i38.UserLocalLibraryPage();
return const _i39.UserLocalLibraryPage();
},
);
}
/// generated route for
/// [_i39.UserPlaylistsPage]
class UserPlaylistsRoute extends _i40.PageRouteInfo<void> {
const UserPlaylistsRoute({List<_i40.PageRouteInfo>? children})
/// [_i40.UserPlaylistsPage]
class UserPlaylistsRoute extends _i41.PageRouteInfo<void> {
const UserPlaylistsRoute({List<_i41.PageRouteInfo>? children})
: super(
UserPlaylistsRoute.name,
initialChildren: children,
@ -1077,10 +1097,10 @@ class UserPlaylistsRoute extends _i40.PageRouteInfo<void> {
static const String name = 'UserPlaylistsRoute';
static _i40.PageInfo page = _i40.PageInfo(
static _i41.PageInfo page = _i41.PageInfo(
name,
builder: (data) {
return const _i39.UserPlaylistsPage();
return const _i40.UserPlaylistsPage();
},
);
}

View File

@ -0,0 +1,67 @@
import 'package:auto_route/auto_route.dart';
import 'package:flutter/material.dart'
show ListTile, ListTileTheme, ListTileThemeData, Material, MaterialType;
import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:shadcn_flutter/shadcn_flutter.dart';
import 'package:shadcn_flutter/shadcn_flutter_extension.dart';
import 'package:spotube/collections/routes.gr.dart';
import 'package:spotube/collections/spotube_icons.dart';
import 'package:spotube/components/titlebar/titlebar.dart';
import 'package:spotube/extensions/context.dart';
@RoutePage()
class SettingsScrobblingPage extends HookConsumerWidget {
static const name = "settings_scrobbling";
const SettingsScrobblingPage({super.key});
@override
Widget build(BuildContext context, ref) {
return Material(
type: MaterialType.transparency,
child: ListTileTheme(
data: ListTileThemeData(
contentPadding: EdgeInsets.zero,
minVerticalPadding: 0,
shape: RoundedRectangleBorder(
borderRadius: context.theme.borderRadiusLg,
side: BorderSide(
color: context.theme.colorScheme.border,
width: .5,
),
),
textColor: context.theme.colorScheme.foreground,
iconColor: context.theme.colorScheme.foreground,
selectedColor: context.theme.colorScheme.accent,
subtitleTextStyle: context.theme.typography.xSmall,
),
child: SafeArea(
bottom: false,
child: Scaffold(
headers: const [TitleBar(title: Text("Scrobbling"))],
child: ListView(
padding: const EdgeInsets.all(8),
children: [
Card(
padding: const EdgeInsets.symmetric(horizontal: 16),
child: ListTile(
leading: const Icon(SpotubeIcons.lastFm, color: Colors.red),
title: Text(context.l10n.login_with_lastfm),
subtitle: Text(context.l10n.scrobble_to_lastfm),
trailing: Button.secondary(
leading: const Icon(SpotubeIcons.lastFm),
onPressed: () {
context.navigateTo(const LastFMLoginRoute());
},
child: Text(context.l10n.connect),
),
),
),
],
),
),
),
),
);
}
}

View File

@ -31,16 +31,12 @@ class SettingsAccountSection extends HookConsumerWidget {
),
if (scrobbler.asData?.value == null)
ListTile(
leading: const Icon(SpotubeIcons.lastFm),
title: Text(context.l10n.login_with_lastfm),
subtitle: Text(context.l10n.scrobble_to_lastfm),
trailing: Button.secondary(
leading: const Icon(SpotubeIcons.lastFm),
onPressed: () {
context.navigateTo(const LastFMLoginRoute());
leading: const Icon(SpotubeIcons.music),
title: const Text("Audio scrobblers"),
onTap: () {
context.pushRoute(const SettingsScrobblingRoute());
},
child: Text(context.l10n.connect),
),
trailing: const Icon(SpotubeIcons.angleRight),
)
else
ListTile(