ExpandedControls castDevice name
This commit is contained in:
parent
4c34bfb4b9
commit
dcf62d0af6
3 changed files with 43 additions and 12 deletions
|
|
@ -143,10 +143,9 @@ I used this project to test the capabilities of the following technologies:
|
||||||
|
|
||||||
## Roadmap
|
## Roadmap
|
||||||
|
|
||||||
* Volume in Expanded Controls
|
|
||||||
* Currently connected cast device name
|
|
||||||
* CC in Expanded Controls
|
* CC in Expanded Controls
|
||||||
* Handle Ad Break
|
* Handle Ad Break
|
||||||
* Handle progress seek
|
* Handle progress seek
|
||||||
* Handle queue
|
* Handle queue
|
||||||
* Handle mini-player
|
* Handle mini-player
|
||||||
|
* Produce HTML docs
|
||||||
|
|
|
||||||
|
|
@ -2,12 +2,10 @@ import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_cast_framework/src/cast/widgets/expanded_controls/ExpandedControlsToolbar.dart';
|
import 'package:flutter_cast_framework/src/cast/widgets/expanded_controls/ExpandedControlsToolbar.dart';
|
||||||
|
|
||||||
import '../../../../cast.dart';
|
import '../../../../cast.dart';
|
||||||
|
import 'ExpandedControlsConnectedDeviceLabel.dart';
|
||||||
import 'ExpandedControlsPlayer.dart';
|
import 'ExpandedControlsPlayer.dart';
|
||||||
import 'ExpandedControlsProgress.dart';
|
import 'ExpandedControlsProgress.dart';
|
||||||
|
|
||||||
// TODO call framework to get cast device
|
|
||||||
const String castDevice = "cast device";
|
|
||||||
|
|
||||||
const _topDownBlackGradient = BoxDecoration(
|
const _topDownBlackGradient = BoxDecoration(
|
||||||
gradient: LinearGradient(
|
gradient: LinearGradient(
|
||||||
begin: Alignment.topCenter,
|
begin: Alignment.topCenter,
|
||||||
|
|
@ -32,13 +30,13 @@ const _bottomUpBlackGradient = BoxDecoration(
|
||||||
|
|
||||||
class ExpandedControls extends StatefulWidget {
|
class ExpandedControls extends StatefulWidget {
|
||||||
final FlutterCastFramework castFramework;
|
final FlutterCastFramework castFramework;
|
||||||
final String castingToText;
|
final String? castingToText;
|
||||||
final VoidCallback? onBackTapped;
|
final VoidCallback? onBackTapped;
|
||||||
final controller = ExpandedControlsProgressController();
|
final controller = ExpandedControlsProgressController();
|
||||||
|
|
||||||
ExpandedControls({
|
ExpandedControls({
|
||||||
required this.castFramework,
|
required this.castFramework,
|
||||||
this.castingToText = "Casting to",
|
this.castingToText,
|
||||||
this.onBackTapped,
|
this.onBackTapped,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
@ -88,17 +86,15 @@ class _ExpandedControlsState extends State<ExpandedControls> {
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget _getDecoratedControls(BuildContext context, MediaInfo? mediaInfo) {
|
Widget _getDecoratedControls(BuildContext context, MediaInfo? mediaInfo) {
|
||||||
final textStyle =
|
|
||||||
Theme.of(context).textTheme.bodyText2?.copyWith(color: Colors.white);
|
|
||||||
|
|
||||||
return Container(
|
return Container(
|
||||||
decoration: _bottomUpBlackGradient,
|
decoration: _bottomUpBlackGradient,
|
||||||
child: Column(
|
child: Column(
|
||||||
children: [
|
children: [
|
||||||
Padding(
|
Padding(
|
||||||
padding: const EdgeInsets.all(8.0),
|
padding: const EdgeInsets.all(8.0),
|
||||||
child:
|
child: ExpandedControlsConnectedDeviceLabel(
|
||||||
Text("${widget.castingToText} $castDevice", style: textStyle),
|
castFramework: widget.castFramework,
|
||||||
|
),
|
||||||
),
|
),
|
||||||
Padding(
|
Padding(
|
||||||
padding: const EdgeInsets.all(8.0),
|
padding: const EdgeInsets.all(8.0),
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,36 @@
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:flutter/widgets.dart';
|
||||||
|
import 'package:flutter_cast_framework/cast.dart';
|
||||||
|
|
||||||
|
class ExpandedControlsConnectedDeviceLabel extends StatelessWidget {
|
||||||
|
final FlutterCastFramework castFramework;
|
||||||
|
final String castingToText;
|
||||||
|
|
||||||
|
const ExpandedControlsConnectedDeviceLabel({
|
||||||
|
Key? key,
|
||||||
|
required this.castFramework,
|
||||||
|
this.castingToText = "Casting to",
|
||||||
|
}) : super(key: key);
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
final textStyle =
|
||||||
|
Theme.of(context).textTheme.bodyText2?.copyWith(color: Colors.white);
|
||||||
|
|
||||||
|
return FutureBuilder<CastDevice>(
|
||||||
|
future: castFramework.castContext.sessionManager.getCastDevice(),
|
||||||
|
builder: (context, snapshot) {
|
||||||
|
if (snapshot.hasData) {
|
||||||
|
var castDevice = snapshot.data;
|
||||||
|
var castDeviceName = castDevice?.friendlyName ?? "";
|
||||||
|
return Text("$castingToText $castDeviceName", style: textStyle);
|
||||||
|
} else if (snapshot.hasError) {
|
||||||
|
debugPrint("error while retrieving cast device ${snapshot.error}");
|
||||||
|
return Text("");
|
||||||
|
} else {
|
||||||
|
return Text("");
|
||||||
|
}
|
||||||
|
},
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in a new issue