From 6a1ec6c906bbab2b6adc35ef7872fb0ef5a98b39 Mon Sep 17 00:00:00 2001 From: gianlucaparadise Date: Mon, 3 Jan 2022 10:06:27 +0100 Subject: [PATCH] ExpandedControl: stub ad info box --- .../expanded_controls/ExpandedControls.dart | 26 ++++++++++++++++- .../ExpandedControlsBasicButton.dart | 29 +++++++++++++++++++ .../ExpandedControlsHighlightedText.dart | 29 +++++++++++++++++++ .../ExpandedControlsInfoTextBox.dart | 27 +++++++++++++++++ 4 files changed, 110 insertions(+), 1 deletion(-) create mode 100644 lib/src/cast/widgets/expanded_controls/ExpandedControlsBasicButton.dart create mode 100644 lib/src/cast/widgets/expanded_controls/ExpandedControlsHighlightedText.dart create mode 100644 lib/src/cast/widgets/expanded_controls/ExpandedControlsInfoTextBox.dart diff --git a/lib/src/cast/widgets/expanded_controls/ExpandedControls.dart b/lib/src/cast/widgets/expanded_controls/ExpandedControls.dart index e4da6ba..f78777b 100644 --- a/lib/src/cast/widgets/expanded_controls/ExpandedControls.dart +++ b/lib/src/cast/widgets/expanded_controls/ExpandedControls.dart @@ -1,7 +1,10 @@ import 'package:flutter/material.dart'; import '../../../../cast.dart'; +import 'ExpandedControlsBasicButton.dart'; import 'ExpandedControlsConnectedDeviceLabel.dart'; +import 'ExpandedControlsHighlightedText.dart'; +import 'ExpandedControlsInfoTextBox.dart'; import 'ExpandedControlsPlayer.dart'; import 'ExpandedControlsProgress.dart'; import 'ExpandedControlsToolbar.dart'; @@ -185,6 +188,27 @@ class _ExpandedControlsState extends State { ); } + List _getAdInfoBox() { + return [ + const Spacer(flex: 2), + const ExpandedControlsHighlightedText( + text: "Ad Title", // TODO: retrieve ad title from API + ), + const SizedBox(height: 8), + const Expanded( + flex: 8, + child: ExpandedControlsInfoTextBox( + text: "Ad in progress...", // TODO: localize label + ), + ), + const Spacer(flex: 1), + ExpandedControlsBasicButton( + text: "Skip Ad", // TODO: localize label + onPressed: () {/* TODO: skip ad */}, + ), + ]; + } + Widget _getFullControls(BuildContext context, MediaInfo? mediaInfo) { return Container( decoration: BoxDecoration( @@ -194,7 +218,7 @@ class _ExpandedControlsState extends State { child: Column( children: [ _getDecoratedToolbar(mediaInfo), - Spacer(), + ..._getAdInfoBox(), // TODO: check if is playing ad, otherwise -> Spacer(), _getDecoratedControls(context, mediaInfo), ], ), diff --git a/lib/src/cast/widgets/expanded_controls/ExpandedControlsBasicButton.dart b/lib/src/cast/widgets/expanded_controls/ExpandedControlsBasicButton.dart new file mode 100644 index 0000000..efd310d --- /dev/null +++ b/lib/src/cast/widgets/expanded_controls/ExpandedControlsBasicButton.dart @@ -0,0 +1,29 @@ +import 'package:flutter/material.dart'; + +class ExpandedControlsBasicButton extends StatelessWidget { + final String text; + final VoidCallback? onPressed; + + const ExpandedControlsBasicButton({ + Key? key, + this.text = "", + this.onPressed, + }) : super(key: key); + + @override + Widget build(BuildContext context) { + return OutlinedButton( + onPressed: this.onPressed, + style: OutlinedButton.styleFrom( + primary: Colors.white, + backgroundColor: Colors.black, + shape: const RoundedRectangleBorder(), + side: BorderSide( + width: 1, + color: Colors.white, + ), + ), + child: Text(text), + ); + } +} diff --git a/lib/src/cast/widgets/expanded_controls/ExpandedControlsHighlightedText.dart b/lib/src/cast/widgets/expanded_controls/ExpandedControlsHighlightedText.dart new file mode 100644 index 0000000..7251abe --- /dev/null +++ b/lib/src/cast/widgets/expanded_controls/ExpandedControlsHighlightedText.dart @@ -0,0 +1,29 @@ +import 'package:flutter/material.dart'; +import 'package:flutter/widgets.dart'; + +class ExpandedControlsHighlightedText extends StatelessWidget { + final String text; + + const ExpandedControlsHighlightedText({ + Key? key, + this.text = "", + }) : super(key: key); + + @override + Widget build(BuildContext context) { + return Container( + decoration: BoxDecoration( + color: Colors.amber, + ), + child: Padding( + padding: const EdgeInsets.all(4.0), + child: Text( + this.text, + style: TextStyle( + color: Colors.white, + ), + ), + ), + ); + } +} diff --git a/lib/src/cast/widgets/expanded_controls/ExpandedControlsInfoTextBox.dart b/lib/src/cast/widgets/expanded_controls/ExpandedControlsInfoTextBox.dart new file mode 100644 index 0000000..e2974bc --- /dev/null +++ b/lib/src/cast/widgets/expanded_controls/ExpandedControlsInfoTextBox.dart @@ -0,0 +1,27 @@ +import 'package:flutter/material.dart'; + +class ExpandedControlsInfoTextBox extends StatelessWidget { + final String text; + + const ExpandedControlsInfoTextBox({ + Key? key, + this.text = "", + }) : super(key: key); + + @override + Widget build(BuildContext context) { + return Container( + decoration: BoxDecoration( + color: Colors.black, + ), + child: Center( + child: Text( + this.text, + style: TextStyle( + color: Colors.white, + ), + ), + ), + ); + } +}