💄 Adjust UI
This commit is contained in:
@@ -23,6 +23,11 @@ class MyApp extends StatelessWidget {
|
||||
brightness: Brightness.light,
|
||||
),
|
||||
useMaterial3: true,
|
||||
inputDecorationTheme: InputDecorationTheme(
|
||||
border: OutlineInputBorder(
|
||||
borderRadius: const BorderRadius.all(Radius.circular(12)),
|
||||
),
|
||||
),
|
||||
),
|
||||
darkTheme: ThemeData(
|
||||
colorScheme: ColorScheme.fromSeed(
|
||||
@@ -30,6 +35,11 @@ class MyApp extends StatelessWidget {
|
||||
brightness: Brightness.dark,
|
||||
),
|
||||
useMaterial3: true,
|
||||
inputDecorationTheme: InputDecorationTheme(
|
||||
border: OutlineInputBorder(
|
||||
borderRadius: const BorderRadius.all(Radius.circular(12)),
|
||||
),
|
||||
),
|
||||
),
|
||||
themeMode: ThemeMode.system,
|
||||
home: const Shell(),
|
||||
|
||||
@@ -458,6 +458,7 @@ class LibraryScreen extends HookConsumerWidget {
|
||||
builder: (context) => AlertDialog(
|
||||
title: const Text('Edit Track'),
|
||||
content: Column(
|
||||
spacing: 16,
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
TextField(
|
||||
|
||||
@@ -23,11 +23,7 @@ class PlayerScreen extends HookConsumerWidget {
|
||||
final tabController = useTabController(initialLength: 2);
|
||||
final isMobile = MediaQuery.sizeOf(context).width <= 640;
|
||||
|
||||
return Scaffold(
|
||||
body: Stack(
|
||||
children: [
|
||||
// Main content (StreamBuilder)
|
||||
StreamBuilder<Playlist>(
|
||||
return StreamBuilder<Playlist>(
|
||||
stream: player.stream.playlist,
|
||||
initialData: player.state.playlist,
|
||||
builder: (context, snapshot) {
|
||||
@@ -37,11 +33,15 @@ class PlayerScreen extends HookConsumerWidget {
|
||||
return const Center(child: Text('No media selected'));
|
||||
}
|
||||
final media = medias[index];
|
||||
final path = Uri.decodeFull(Uri.parse(media.uri).path);
|
||||
|
||||
final path = Uri.decodeFull(Uri.parse(media.uri).path);
|
||||
final metadataAsync = ref.watch(trackMetadataProvider(path));
|
||||
|
||||
return Builder(
|
||||
return Scaffold(
|
||||
body: Stack(
|
||||
children: [
|
||||
// Main content (StreamBuilder)
|
||||
Builder(
|
||||
builder: (context) {
|
||||
if (isMobile) {
|
||||
return Padding(
|
||||
@@ -65,8 +65,6 @@ class PlayerScreen extends HookConsumerWidget {
|
||||
);
|
||||
}
|
||||
},
|
||||
);
|
||||
},
|
||||
),
|
||||
// IconButton
|
||||
Positioned(
|
||||
@@ -85,6 +83,8 @@ class PlayerScreen extends HookConsumerWidget {
|
||||
top: MediaQuery.of(context).padding.top + 14,
|
||||
left: 54,
|
||||
right: 54,
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 24),
|
||||
child: TabBar(
|
||||
controller: tabController,
|
||||
tabAlignment: TabAlignment.fill,
|
||||
@@ -98,9 +98,13 @@ class PlayerScreen extends HookConsumerWidget {
|
||||
splashFactory: NoSplash.splashFactory,
|
||||
),
|
||||
),
|
||||
),
|
||||
_LyricsRefreshButton(trackPath: path),
|
||||
],
|
||||
),
|
||||
);
|
||||
},
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -370,21 +374,14 @@ class _PlayerLyrics extends HookConsumerWidget {
|
||||
final lyricsData = LyricsData.fromJsonString(track.lyrics!);
|
||||
|
||||
if (lyricsData.type == 'timed') {
|
||||
return Stack(
|
||||
children: [
|
||||
_TimedLyricsView(
|
||||
return _TimedLyricsView(
|
||||
lyrics: lyricsData,
|
||||
player: player,
|
||||
trackPath: trackPath!,
|
||||
),
|
||||
_LyricsRefreshButton(trackPath: trackPath!),
|
||||
],
|
||||
);
|
||||
} else {
|
||||
// Plain text lyrics
|
||||
return Stack(
|
||||
children: [
|
||||
ListView.builder(
|
||||
return ListView.builder(
|
||||
padding: const EdgeInsets.all(16),
|
||||
itemCount: lyricsData.lines.length,
|
||||
itemBuilder: (context, index) {
|
||||
@@ -397,9 +394,6 @@ class _PlayerLyrics extends HookConsumerWidget {
|
||||
),
|
||||
);
|
||||
},
|
||||
),
|
||||
_LyricsRefreshButton(trackPath: trackPath!),
|
||||
],
|
||||
);
|
||||
}
|
||||
} catch (e) {
|
||||
|
||||
Reference in New Issue
Block a user