mucke/lib/presentation/widgets/time_progress_indicator.dart

45 lines
1.3 KiB
Dart
Raw Normal View History

2020-03-20 16:17:02 +01:00
import 'package:flutter/material.dart';
2020-04-11 20:23:02 +02:00
import 'package:flutter_mobx/flutter_mobx.dart';
import 'package:provider/provider.dart';
2020-03-20 16:17:02 +01:00
2020-04-11 20:23:02 +02:00
import '../state/audio_store.dart';
import '../utils.dart';
2020-03-20 16:17:02 +01:00
2020-04-11 20:23:02 +02:00
class TimeProgressIndicator extends StatelessWidget {
const TimeProgressIndicator({Key key}) : super(key: key);
2020-03-20 16:17:02 +01:00
@override
Widget build(BuildContext context) {
2020-04-11 20:23:02 +02:00
final AudioStore audioStore = Provider.of<AudioStore>(context);
return Observer(
builder: (BuildContext context) {
2020-09-19 20:30:41 +02:00
final int duration = audioStore.currentSongStream.value?.duration ?? 1000;
2020-08-24 12:01:01 +02:00
2020-04-11 20:23:02 +02:00
return Padding(
padding: const EdgeInsets.symmetric(horizontal: 16.0),
child: Row(
children: [
Text(msToTimeString(audioStore.currentPositionStream.value)),
Container(
width: 10,
),
Expanded(
child: Container(
2020-08-24 12:01:01 +02:00
child: LinearProgressIndicator(value: audioStore.currentPositionStream.value / duration),
2020-04-11 20:23:02 +02:00
height: 3.0,
),
),
Container(
width: 10,
),
2020-08-24 12:01:01 +02:00
Text(msToTimeString(duration)),
2020-04-11 20:23:02 +02:00
],
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
2020-03-20 16:17:02 +01:00
),
2020-04-11 20:23:02 +02:00
);
},
2020-03-20 16:17:02 +01:00
);
}
}