first commit
This commit is contained in:
@@ -0,0 +1,92 @@
|
||||
import 'dart:io';
|
||||
import 'dart:math';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
|
||||
import 'package:get_it/get_it.dart';
|
||||
|
||||
import '../../models/jellyfin_models.dart';
|
||||
import '../../services/audio_service_helper.dart';
|
||||
import '../album_image.dart';
|
||||
import 'item_info.dart';
|
||||
|
||||
class AlbumScreenContentFlexibleSpaceBar extends StatelessWidget {
|
||||
const AlbumScreenContentFlexibleSpaceBar({
|
||||
Key? key,
|
||||
required this.album,
|
||||
required this.items,
|
||||
}) : super(key: key);
|
||||
|
||||
final BaseItemDto album;
|
||||
final List<BaseItemDto> items;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
AudioServiceHelper audioServiceHelper =
|
||||
GetIt.instance<AudioServiceHelper>();
|
||||
|
||||
return FlexibleSpaceBar(
|
||||
background: SafeArea(
|
||||
child: Align(
|
||||
alignment: Alignment.bottomCenter,
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 8),
|
||||
child: Column(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
Row(
|
||||
children: [
|
||||
SizedBox(
|
||||
height: 125,
|
||||
child: AlbumImage(item: album),
|
||||
),
|
||||
const Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 4),
|
||||
),
|
||||
Expanded(
|
||||
flex: 2,
|
||||
child: ItemInfo(
|
||||
item: album,
|
||||
itemSongs: items.length,
|
||||
),
|
||||
)
|
||||
],
|
||||
),
|
||||
Padding(
|
||||
padding: const EdgeInsets.symmetric(vertical: 8),
|
||||
child: Row(children: [
|
||||
Expanded(
|
||||
child: ElevatedButton.icon(
|
||||
onPressed: () =>
|
||||
audioServiceHelper.replaceQueueWithItem(
|
||||
itemList: items,
|
||||
),
|
||||
icon: const Icon(Icons.play_arrow),
|
||||
label:
|
||||
Text(AppLocalizations.of(context)!.playButtonLabel),
|
||||
),
|
||||
),
|
||||
const Padding(padding: EdgeInsets.symmetric(horizontal: 8)),
|
||||
Expanded(
|
||||
child: ElevatedButton.icon(
|
||||
onPressed: () =>
|
||||
audioServiceHelper.replaceQueueWithItem(
|
||||
itemList: items,
|
||||
shuffle: true,
|
||||
initialIndex: Random().nextInt(items.length),
|
||||
),
|
||||
icon: const Icon(Icons.shuffle),
|
||||
label: Text(
|
||||
AppLocalizations.of(context)!.shuffleButtonLabel),
|
||||
),
|
||||
),
|
||||
]),
|
||||
)
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user