From b40308c9e4f4e0f704074631b858cca49405b40c Mon Sep 17 00:00:00 2001 From: Pierre HUBERT Date: Sun, 10 May 2020 13:46:45 +0200 Subject: [PATCH] Start to show call window --- .../tablet_mode/calls/call_window_widget.dart | 32 +++++++++++++++++++ .../widgets/tablet_mode/calls/calls_area.dart | 19 ++++++++--- 2 files changed, 47 insertions(+), 4 deletions(-) create mode 100644 lib/ui/widgets/tablet_mode/calls/call_window_widget.dart diff --git a/lib/ui/widgets/tablet_mode/calls/call_window_widget.dart b/lib/ui/widgets/tablet_mode/calls/call_window_widget.dart new file mode 100644 index 0000000..f37e31b --- /dev/null +++ b/lib/ui/widgets/tablet_mode/calls/call_window_widget.dart @@ -0,0 +1,32 @@ +import 'package:comunic/ui/screens/call_screen.dart'; +import 'package:flutter/material.dart'; + +/// Call window widget +/// +/// @author Pierre HUBERT + +class CallWindowWidget extends StatefulWidget { + final int convID; + + const CallWindowWidget({ + Key key, + this.convID, + }) : assert(convID != null), + super(key: key); + + @override + _CallWindowWidgetState createState() => _CallWindowWidgetState(); +} + +class _CallWindowWidgetState extends State { + @override + Widget build(BuildContext context) { + return Positioned( + width: 500, + height: 200, + right: 10, + top: 10, + child: Card(child: CallScreen(convID: widget.convID)), + ); + } +} diff --git a/lib/ui/widgets/tablet_mode/calls/calls_area.dart b/lib/ui/widgets/tablet_mode/calls/calls_area.dart index 134382a..27aa4b8 100644 --- a/lib/ui/widgets/tablet_mode/calls/calls_area.dart +++ b/lib/ui/widgets/tablet_mode/calls/calls_area.dart @@ -1,5 +1,4 @@ -import 'package:comunic/utils/intl_utils.dart'; -import 'package:comunic/utils/ui_utils.dart'; +import 'package:comunic/ui/widgets/tablet_mode/calls/call_window_widget.dart'; import 'package:flutter/material.dart'; /// Tablets mode calls area @@ -14,13 +13,25 @@ class CallsArea extends StatefulWidget { } class CallsAreaState extends State { + final _openCalls = Map(); + @override Widget build(BuildContext context) { - return Stack(); + return Stack( + children: _openCalls + .map((convID, key) => + MapEntry(convID, CallWindowWidget(key: key, convID: convID))) + .values + .toList(), + ); } /// Open a new call void openCall(int convID) { - showSimpleSnack(context, tr("Open call $convID")); + if (!_openCalls.containsKey(convID)) { + setState(() { + _openCalls[convID] = UniqueKey(); + }); + } } }