/
quick_start.dart
119 lines (107 loc) · 2.9 KB
/
quick_start.dart
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
import 'dart:async';
import 'package:fastboard_flutter/fastboard_flutter.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'constants.dart';
import 'page.dart';
import 'widgets.dart';
class QuickStartPage extends FastExamplePage {
const QuickStartPage()
: super(
const Icon(Icons.rocket_launch_rounded),
'Quick Start',
);
@override
Widget build(BuildContext context) {
return const QuickStartBody();
}
}
class QuickStartBody extends StatefulWidget {
const QuickStartBody();
@override
State<StatefulWidget> createState() {
return QuickStartBodyState();
}
}
class QuickStartBodyState extends State<QuickStartBody> {
Completer<FastRoomController> completerController = Completer();
// This widgets is the root of your application.
@override
Widget build(BuildContext context) {
return Stack(children: [
FastRoomView(
fastRoomOptions: FastRoomOptions(
appId: APP_ID,
uuid: ROOM_UUID,
token: ROOM_TOKEN,
uid: UNIQUE_CLIENT_ID,
writable: true,
fastRegion: FastRegion.cn_hz,
containerSizeRatio: null,
),
useDarkTheme: false,
onFastRoomCreated: onFastRoomCreated,
),
FutureBuilder<FastRoomController>(
future: completerController.future,
builder: (context, snapshot) {
if (snapshot.hasData) {
return Positioned(
child: CloudTestWidget(controller: snapshot.data!),
);
} else {
return Container();
}
}),
Positioned(
child: InkWell(
child: Icon(Icons.arrow_back_ios),
onTap: () {
Navigator.of(context).pop();
},
),
left: 24,
top: 24,
),
]);
}
Widget customControllerBuilder(
BuildContext context,
FastRoomController controller,
) {
return Stack(
alignment: Alignment.center,
children: [
FastOverlayHandlerView(controller),
Positioned(
child: FastPageIndicator(controller),
bottom: FastGap.gap_3,
right: FastGap.gap_3,
),
FastToolBoxExpand(controller),
FastStateHandlerView(controller),
],
);
}
Future<void> onFastRoomCreated(FastRoomController controller) async {
completerController.complete(controller);
}
@override
void initState() {
super.initState();
SystemChrome.setPreferredOrientations([
DeviceOrientation.landscapeLeft,
DeviceOrientation.landscapeRight,
DeviceOrientation.portraitDown,
DeviceOrientation.portraitUp,
]);
SystemChrome.setEnabledSystemUIMode(SystemUiMode.immersiveSticky);
}
@override
void dispose() {
super.dispose();
// SystemChrome.setPreferredOrientations([
// DeviceOrientation.portraitUp,
// ]);
}
}