Text styling, download fix, small bugs
This commit is contained in:
parent
109fc6f54b
commit
6f250df004
|
@ -1,5 +1,7 @@
|
||||||
package f.f.freezer;
|
package f.f.freezer;
|
||||||
|
|
||||||
|
import android.content.Intent;
|
||||||
|
import android.net.Uri;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
|
@ -47,6 +49,13 @@ public class MainActivity extends FlutterActivity {
|
||||||
decryptTrack(path, tid);
|
decryptTrack(path, tid);
|
||||||
result.success(0);
|
result.success(0);
|
||||||
}
|
}
|
||||||
|
//Android media scanner
|
||||||
|
if (call.method.equals("rescanLibrary")) {
|
||||||
|
String path = call.argument("path");
|
||||||
|
Uri uri = Uri.fromFile(new File(path));
|
||||||
|
sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, uri));
|
||||||
|
result.success(0);
|
||||||
|
}
|
||||||
//Add tags to track
|
//Add tags to track
|
||||||
if (call.method.equals("tagTrack")) {
|
if (call.method.equals("tagTrack")) {
|
||||||
try {
|
try {
|
||||||
|
|
|
@ -543,6 +543,10 @@ class Download {
|
||||||
'cover': _cover,
|
'cover': _cover,
|
||||||
'trackNumber': track.trackNumber
|
'trackNumber': track.trackNumber
|
||||||
});
|
});
|
||||||
|
//Rescan android library
|
||||||
|
await platformChannel.invokeMethod('rescanLibrary', {
|
||||||
|
'path': path
|
||||||
|
});
|
||||||
}
|
}
|
||||||
//Remove encrypted
|
//Remove encrypted
|
||||||
await File(path + '.ENC').delete();
|
await File(path + '.ENC').delete();
|
||||||
|
|
|
@ -78,6 +78,7 @@ class Settings {
|
||||||
accentColor: primaryColor,
|
accentColor: primaryColor,
|
||||||
sliderTheme: _sliderTheme,
|
sliderTheme: _sliderTheme,
|
||||||
toggleableActiveColor: primaryColor,
|
toggleableActiveColor: primaryColor,
|
||||||
|
bottomAppBarColor: Color(0xfff7f7f7)
|
||||||
);
|
);
|
||||||
case Themes.Dark:
|
case Themes.Dark:
|
||||||
return ThemeData(
|
return ThemeData(
|
||||||
|
|
|
@ -129,7 +129,7 @@ class _LoginWidgetState extends State<LoginWidget> {
|
||||||
"Please login using your Deezer account.",
|
"Please login using your Deezer account.",
|
||||||
textAlign: TextAlign.center,
|
textAlign: TextAlign.center,
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
fontSize: 18.0
|
fontSize: 16.0
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
Container(height: 16.0,),
|
Container(height: 16.0,),
|
||||||
|
@ -183,7 +183,7 @@ class _LoginWidgetState extends State<LoginWidget> {
|
||||||
"If you don't have account, you can register on deezer.com for free.",
|
"If you don't have account, you can register on deezer.com for free.",
|
||||||
textAlign: TextAlign.center,
|
textAlign: TextAlign.center,
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
fontSize: 18.0
|
fontSize: 16.0
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
Padding(
|
Padding(
|
||||||
|
@ -202,7 +202,7 @@ class _LoginWidgetState extends State<LoginWidget> {
|
||||||
"By using this app, you don't agree with the Deezer ToS",
|
"By using this app, you don't agree with the Deezer ToS",
|
||||||
textAlign: TextAlign.center,
|
textAlign: TextAlign.center,
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
fontSize: 18.0
|
fontSize: 16.0
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
],
|
],
|
||||||
|
|
|
@ -25,31 +25,34 @@ class PlayerBar extends StatelessWidget {
|
||||||
return Column(
|
return Column(
|
||||||
mainAxisSize: MainAxisSize.min,
|
mainAxisSize: MainAxisSize.min,
|
||||||
children: <Widget>[
|
children: <Widget>[
|
||||||
ListTile(
|
Container(
|
||||||
onTap: () => Navigator.of(context).push(MaterialPageRoute(builder: (BuildContext context) => PlayerScreen())),
|
color: Theme.of(context).bottomAppBarColor,
|
||||||
leading: CachedImage(
|
child: ListTile(
|
||||||
width: 50,
|
onTap: () => Navigator.of(context).push(MaterialPageRoute(builder: (BuildContext context) => PlayerScreen())),
|
||||||
height: 50,
|
leading: CachedImage(
|
||||||
url: AudioService.currentMediaItem.artUri,
|
width: 50,
|
||||||
),
|
height: 50,
|
||||||
title: Text(
|
url: AudioService.currentMediaItem.artUri,
|
||||||
AudioService.currentMediaItem.displayTitle,
|
),
|
||||||
overflow: TextOverflow.clip,
|
title: Text(
|
||||||
maxLines: 1,
|
AudioService.currentMediaItem.displayTitle,
|
||||||
),
|
overflow: TextOverflow.clip,
|
||||||
subtitle: Text(
|
maxLines: 1,
|
||||||
AudioService.currentMediaItem.displaySubtitle,
|
),
|
||||||
overflow: TextOverflow.clip,
|
subtitle: Text(
|
||||||
maxLines: 1,
|
AudioService.currentMediaItem.displaySubtitle,
|
||||||
),
|
overflow: TextOverflow.clip,
|
||||||
trailing: Row(
|
maxLines: 1,
|
||||||
mainAxisSize: MainAxisSize.min,
|
),
|
||||||
children: <Widget>[
|
trailing: Row(
|
||||||
PrevNextButton(iconSize, prev: true, hidePrev: true,),
|
mainAxisSize: MainAxisSize.min,
|
||||||
PlayPauseButton(iconSize),
|
children: <Widget>[
|
||||||
PrevNextButton(iconSize)
|
PrevNextButton(iconSize, prev: true, hidePrev: true,),
|
||||||
],
|
PlayPauseButton(iconSize),
|
||||||
)
|
PrevNextButton(iconSize)
|
||||||
|
],
|
||||||
|
)
|
||||||
|
),
|
||||||
),
|
),
|
||||||
Container(
|
Container(
|
||||||
height: 3.0,
|
height: 3.0,
|
||||||
|
|
|
@ -10,6 +10,7 @@ import 'package:freezer/ui/menu.dart';
|
||||||
import 'package:freezer/ui/settings_screen.dart';
|
import 'package:freezer/ui/settings_screen.dart';
|
||||||
import 'package:freezer/ui/tiles.dart';
|
import 'package:freezer/ui/tiles.dart';
|
||||||
import 'package:async/async.dart';
|
import 'package:async/async.dart';
|
||||||
|
import 'package:marquee/marquee.dart';
|
||||||
|
|
||||||
import 'cached_image.dart';
|
import 'cached_image.dart';
|
||||||
import '../api/definitions.dart';
|
import '../api/definitions.dart';
|
||||||
|
@ -115,15 +116,29 @@ class _PlayerScreenHorizontalState extends State<PlayerScreenHorizontal> {
|
||||||
Column(
|
Column(
|
||||||
mainAxisSize: MainAxisSize.min,
|
mainAxisSize: MainAxisSize.min,
|
||||||
children: <Widget>[
|
children: <Widget>[
|
||||||
Text(
|
Container(
|
||||||
AudioService.currentMediaItem.displayTitle,
|
height: ScreenUtil().setSp(40),
|
||||||
maxLines: 1,
|
child: AudioService.currentMediaItem.displayTitle.length >= 22 ?
|
||||||
textAlign: TextAlign.center,
|
Marquee(
|
||||||
overflow: TextOverflow.clip,
|
text: AudioService.currentMediaItem.displayTitle,
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
fontSize: ScreenUtil().setSp(40),
|
fontSize: ScreenUtil().setSp(40),
|
||||||
fontWeight: FontWeight.bold
|
fontWeight: FontWeight.bold
|
||||||
),
|
),
|
||||||
|
blankSpace: 32.0,
|
||||||
|
startPadding: 10.0,
|
||||||
|
accelerationDuration: Duration(seconds: 1),
|
||||||
|
pauseAfterRound: Duration(seconds: 2),
|
||||||
|
):
|
||||||
|
Text(
|
||||||
|
AudioService.currentMediaItem.displayTitle,
|
||||||
|
maxLines: 1,
|
||||||
|
overflow: TextOverflow.ellipsis,
|
||||||
|
style: TextStyle(
|
||||||
|
fontSize: ScreenUtil().setSp(40),
|
||||||
|
fontWeight: FontWeight.bold
|
||||||
|
),
|
||||||
|
)
|
||||||
),
|
),
|
||||||
Container(height: 4,),
|
Container(height: 4,),
|
||||||
Text(
|
Text(
|
||||||
|
@ -241,15 +256,29 @@ class _PlayerScreenVerticalState extends State<PlayerScreenVertical> {
|
||||||
Column(
|
Column(
|
||||||
mainAxisSize: MainAxisSize.min,
|
mainAxisSize: MainAxisSize.min,
|
||||||
children: <Widget>[
|
children: <Widget>[
|
||||||
Text(
|
Container(
|
||||||
AudioService.currentMediaItem.displayTitle,
|
height: ScreenUtil().setSp(64),
|
||||||
maxLines: 1,
|
child: AudioService.currentMediaItem.displayTitle.length >= 24 ?
|
||||||
textAlign: TextAlign.center,
|
Marquee(
|
||||||
overflow: TextOverflow.clip,
|
text: AudioService.currentMediaItem.displayTitle,
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
fontSize: ScreenUtil().setSp(64),
|
fontSize: ScreenUtil().setSp(64),
|
||||||
fontWeight: FontWeight.bold
|
fontWeight: FontWeight.bold
|
||||||
),
|
),
|
||||||
|
blankSpace: 32.0,
|
||||||
|
startPadding: 10.0,
|
||||||
|
accelerationDuration: Duration(seconds: 1),
|
||||||
|
pauseAfterRound: Duration(seconds: 2),
|
||||||
|
):
|
||||||
|
Text(
|
||||||
|
AudioService.currentMediaItem.displayTitle,
|
||||||
|
maxLines: 1,
|
||||||
|
overflow: TextOverflow.ellipsis,
|
||||||
|
style: TextStyle(
|
||||||
|
fontSize: ScreenUtil().setSp(64),
|
||||||
|
fontWeight: FontWeight.bold
|
||||||
|
),
|
||||||
|
)
|
||||||
),
|
),
|
||||||
Container(height: 4,),
|
Container(height: 4,),
|
||||||
Text(
|
Text(
|
||||||
|
@ -338,6 +367,7 @@ class _LyricsWidgetState extends State<LyricsWidget> {
|
||||||
Timer _timer;
|
Timer _timer;
|
||||||
int _currentIndex;
|
int _currentIndex;
|
||||||
double _boxHeight;
|
double _boxHeight;
|
||||||
|
double _lyricHeight = 128;
|
||||||
String _trackId;
|
String _trackId;
|
||||||
|
|
||||||
Future _load() async {
|
Future _load() async {
|
||||||
|
@ -380,7 +410,7 @@ class _LyricsWidgetState extends State<LyricsWidget> {
|
||||||
//Scroll to current lyric
|
//Scroll to current lyric
|
||||||
if (_currentIndex <= 0) return;
|
if (_currentIndex <= 0) return;
|
||||||
_scrollController.animateTo(
|
_scrollController.animateTo(
|
||||||
(_boxHeight * _currentIndex),
|
(_lyricHeight * _currentIndex) + (_lyricHeight / 2) - (_boxHeight / 2),
|
||||||
duration: Duration(milliseconds: 250),
|
duration: Duration(milliseconds: 250),
|
||||||
curve: Curves.ease
|
curve: Curves.ease
|
||||||
);
|
);
|
||||||
|
@ -425,7 +455,7 @@ class _LyricsWidgetState extends State<LyricsWidget> {
|
||||||
child: Column(
|
child: Column(
|
||||||
children: List.generate(_l.lyrics.length, (i) {
|
children: List.generate(_l.lyrics.length, (i) {
|
||||||
return Container(
|
return Container(
|
||||||
height: _boxHeight,
|
height: _lyricHeight,
|
||||||
child: Center(
|
child: Center(
|
||||||
child: Stack(
|
child: Stack(
|
||||||
children: <Widget>[
|
children: <Widget>[
|
||||||
|
@ -433,7 +463,7 @@ class _LyricsWidgetState extends State<LyricsWidget> {
|
||||||
_l.lyrics[i].text,
|
_l.lyrics[i].text,
|
||||||
textAlign: TextAlign.center,
|
textAlign: TextAlign.center,
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
fontSize: 36.0,
|
fontSize: 28.0,
|
||||||
fontWeight: (_currentIndex == i)?FontWeight.bold:FontWeight.normal,
|
fontWeight: (_currentIndex == i)?FontWeight.bold:FontWeight.normal,
|
||||||
foreground: Paint()
|
foreground: Paint()
|
||||||
..strokeWidth = 6
|
..strokeWidth = 6
|
||||||
|
@ -446,7 +476,7 @@ class _LyricsWidgetState extends State<LyricsWidget> {
|
||||||
textAlign: TextAlign.center,
|
textAlign: TextAlign.center,
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
color: _textColor,
|
color: _textColor,
|
||||||
fontSize: 36.0,
|
fontSize: 28.0,
|
||||||
fontWeight: (_currentIndex == i)?FontWeight.bold:FontWeight.normal
|
fontWeight: (_currentIndex == i)?FontWeight.bold:FontWeight.normal
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
14
pubspec.lock
14
pubspec.lock
|
@ -239,6 +239,13 @@ packages:
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.0.3"
|
version: "1.0.3"
|
||||||
|
fading_edge_scrollview:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: fading_edge_scrollview
|
||||||
|
url: "https://pub.dartlang.org"
|
||||||
|
source: hosted
|
||||||
|
version: "1.1.4"
|
||||||
file:
|
file:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
@ -445,6 +452,13 @@ packages:
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.11.4"
|
version: "0.11.4"
|
||||||
|
marquee:
|
||||||
|
dependency: "direct main"
|
||||||
|
description:
|
||||||
|
name: marquee
|
||||||
|
url: "https://pub.dartlang.org"
|
||||||
|
source: hosted
|
||||||
|
version: "1.5.2"
|
||||||
matcher:
|
matcher:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|
|
@ -57,6 +57,7 @@ dependencies:
|
||||||
async: ^2.4.1
|
async: ^2.4.1
|
||||||
html: ^0.14.0+3
|
html: ^0.14.0+3
|
||||||
flutter_screenutil: ^2.3.0
|
flutter_screenutil: ^2.3.0
|
||||||
|
marquee: ^1.5.2
|
||||||
|
|
||||||
just_audio:
|
just_audio:
|
||||||
git: https://notabug.org/exttex/just_audio.git
|
git: https://notabug.org/exttex/just_audio.git
|
||||||
|
|
Loading…
Reference in a new issue