0.5.8 - queue reordering, bug and ui fixes, shortcut icon
This commit is contained in:
parent
396b51e90f
commit
9e18537b0c
39 changed files with 219 additions and 27 deletions
|
@ -560,6 +560,7 @@ class _SleepTimerDialogState extends State<SleepTimerDialog> {
|
|||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
|
||||
children: [
|
||||
Column(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
import 'package:audio_service/audio_service.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:freezer/settings.dart';
|
||||
|
||||
import '../api/player.dart';
|
||||
|
@ -46,7 +47,12 @@ class PlayerBar extends StatelessWidget {
|
|||
Container(
|
||||
color: Theme.of(context).bottomAppBarColor,
|
||||
child: ListTile(
|
||||
onTap: () => Navigator.of(context).push(MaterialPageRoute(builder: (BuildContext context) => PlayerScreen())),
|
||||
onTap: () {
|
||||
Navigator.of(context).push(MaterialPageRoute(builder: (BuildContext context) => PlayerScreen()));
|
||||
SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle(
|
||||
systemNavigationBarColor: settings.themeData.scaffoldBackgroundColor,
|
||||
));
|
||||
},
|
||||
leading: CachedImage(
|
||||
width: 50,
|
||||
height: 50,
|
||||
|
|
|
@ -1,8 +1,10 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:audio_service/audio_service.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:flutter_screenutil/screenutil.dart';
|
||||
import 'package:freezer/api/deezer.dart';
|
||||
import 'package:freezer/api/player.dart';
|
||||
import 'package:freezer/settings.dart';
|
||||
import 'package:freezer/translations.i18n.dart';
|
||||
import 'package:freezer/ui/menu.dart';
|
||||
import 'package:freezer/ui/settings_screen.dart';
|
||||
|
@ -25,6 +27,13 @@ class PlayerScreen extends StatefulWidget {
|
|||
|
||||
class _PlayerScreenState extends State<PlayerScreen> {
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle(
|
||||
systemNavigationBarColor: settings.themeData.bottomAppBarColor,
|
||||
));
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
|
@ -578,7 +587,7 @@ class PlayerScreenTopRow extends StatelessWidget {
|
|||
Container(
|
||||
width: this.textWidth??ScreenUtil().setWidth(550),
|
||||
child: Text(
|
||||
(short??false)?playerHelper.queueSource.text:'Playing from:'.i18n + ' ' + playerHelper.queueSource.text,
|
||||
(short??false)?(playerHelper.queueSource.text??''):'Playing from:'.i18n + ' ' + (playerHelper.queueSource.text??''),
|
||||
maxLines: 1,
|
||||
overflow: TextOverflow.ellipsis,
|
||||
textAlign: TextAlign.left,
|
||||
|
@ -779,9 +788,13 @@ class _QueueScreenState extends State<QueueScreen> {
|
|||
)
|
||||
],
|
||||
),
|
||||
body: ListView.builder(
|
||||
itemCount: AudioService.queue.length,
|
||||
itemBuilder: (context, i) {
|
||||
body: ReorderableListView(
|
||||
onReorder: (int oldIndex, int newIndex) async {
|
||||
if (oldIndex == playerHelper.queueIndex) return;
|
||||
await playerHelper.reorder(oldIndex, newIndex);
|
||||
setState(() {});
|
||||
},
|
||||
children: List.generate(AudioService.queue.length, (int i) {
|
||||
Track t = Track.fromMediaItem(AudioService.queue[i]);
|
||||
return TrackTile(
|
||||
t,
|
||||
|
@ -789,12 +802,9 @@ class _QueueScreenState extends State<QueueScreen> {
|
|||
await AudioService.playFromMediaId(t.id);
|
||||
Navigator.of(context).pop();
|
||||
},
|
||||
onHold: () {
|
||||
MenuSheet m = MenuSheet(context);
|
||||
m.defaultTrackMenu(t);
|
||||
},
|
||||
key: Key(t.id),
|
||||
);
|
||||
},
|
||||
}),
|
||||
)
|
||||
);
|
||||
}
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
import 'package:connectivity/connectivity.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:freezer/api/cache.dart';
|
||||
import 'package:freezer/api/download.dart';
|
||||
import 'package:freezer/api/player.dart';
|
||||
import 'package:freezer/ui/details_screens.dart';
|
||||
|
@ -63,6 +64,10 @@ class _SearchScreenState extends State<SearchScreen> {
|
|||
return;
|
||||
}
|
||||
|
||||
//Add to search history
|
||||
try {cache.searchHistory.remove(_query);} catch (_) {}
|
||||
cache.searchHistory.add(_query);
|
||||
|
||||
Navigator.of(context).push(
|
||||
MaterialPageRoute(builder: (context) => SearchResultsScreen(_query, offline: _offline,))
|
||||
);
|
||||
|
@ -158,6 +163,19 @@ class _SearchScreenState extends State<SearchScreen> {
|
|||
if (_loading)
|
||||
LinearProgressIndicator(),
|
||||
Divider(),
|
||||
|
||||
//History
|
||||
if (cache.searchHistory.length > 0 && (_query??'').length == 0)
|
||||
...List.generate(cache.searchHistory.length > 10 ? 10 : cache.searchHistory.length, (int i) => ListTile(
|
||||
title: Text(cache.searchHistory[i]),
|
||||
leading: Icon(Icons.history),
|
||||
onTap: () {
|
||||
setState(() => _query = cache.searchHistory[i]);
|
||||
_submit(context);
|
||||
},
|
||||
)),
|
||||
|
||||
//Suggestions
|
||||
...List.generate((_suggestions??[]).length, (i) => ListTile(
|
||||
title: Text(_suggestions[i]),
|
||||
leading: Icon(Icons.search),
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue