203 lines
6.3 KiB
Dart
203 lines
6.3 KiB
Dart
import 'package:flutter/material.dart';
|
|
|
|
class ZoomJoinScreen extends StatelessWidget {
|
|
const ZoomJoinScreen({super.key});
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return const Placeholder();
|
|
}
|
|
}
|
|
// import 'package:baseproject/core/components/constants_widget.dart';
|
|
// import 'package:baseproject/core/theme/size.dart';
|
|
// import 'package:flutter/material.dart';
|
|
// import 'package:flutter_zoom_videosdk/native/zoom_videosdk.dart';
|
|
|
|
// class ZoomJoinScreen extends StatefulWidget {
|
|
// const ZoomJoinScreen({Key? key}) : super(key: key);
|
|
|
|
// @override
|
|
// State<ZoomJoinScreen> createState() => _ZoomJoinScreenState();
|
|
// }
|
|
|
|
// class _ZoomJoinScreenState extends State<ZoomJoinScreen> {
|
|
// final TextEditingController _sessionNameController = TextEditingController();
|
|
// final TextEditingController _userNameController = TextEditingController(text: 'Guest');
|
|
// final TextEditingController _tokenController = TextEditingController();
|
|
// final TextEditingController _passwordController = TextEditingController();
|
|
|
|
// final ZoomVideoSdk _zoom = ZoomVideoSdk();
|
|
// bool _isInitializing = false;
|
|
// bool _isInitialized = false;
|
|
// bool _isJoining = false;
|
|
|
|
// @override
|
|
// void initState() {
|
|
// super.initState();
|
|
// _initZoomSdk();
|
|
// }
|
|
|
|
// @override
|
|
// void dispose() {
|
|
// _sessionNameController.dispose();
|
|
// _userNameController.dispose();
|
|
// _tokenController.dispose();
|
|
// _passwordController.dispose();
|
|
// super.dispose();
|
|
// }
|
|
|
|
// Future<void> _initZoomSdk() async {
|
|
// if (_isInitializing || _isInitialized) return;
|
|
// setState(() {
|
|
// _isInitializing = true;
|
|
// });
|
|
|
|
// try {
|
|
// final initConfig = InitConfig(
|
|
// domain: 'zoom.us',
|
|
// enableLog: true,
|
|
// );
|
|
// await _zoom.initSdk(initConfig);
|
|
// setState(() {
|
|
// _isInitialized = true;
|
|
// });
|
|
// } catch (e) {
|
|
// ScaffoldMessenger.of(context).showSnackBar(
|
|
// SnackBar(
|
|
// content: Text('Khởi tạo Zoom SDK thất bại: $e'),
|
|
// ),
|
|
// );
|
|
// } finally {
|
|
// if (mounted) {
|
|
// setState(() {
|
|
// _isInitializing = false;
|
|
// });
|
|
// }
|
|
// }
|
|
// }
|
|
|
|
// Future<void> _onJoin() async {
|
|
// if (!_isInitialized) {
|
|
// await _initZoomSdk();
|
|
// if (!_isInitialized) return;
|
|
// }
|
|
|
|
// final String sessionName = _sessionNameController.text.trim();
|
|
// final String userName = _userNameController.text.trim();
|
|
// final String token = _tokenController.text.trim();
|
|
// final String password = _passwordController.text.trim();
|
|
|
|
// if (sessionName.isEmpty || token.isEmpty) {
|
|
// ScaffoldMessenger.of(context).showSnackBar(
|
|
// const SnackBar(
|
|
// content: Text('Vui lòng nhập đủ Session name và Token'),
|
|
// ),
|
|
// );
|
|
// return;
|
|
// }
|
|
|
|
// setState(() {
|
|
// _isJoining = true;
|
|
// });
|
|
|
|
// try {
|
|
// final Map<String, bool> audioOptions = {
|
|
// 'connect': true,
|
|
// 'mute': false,
|
|
// };
|
|
|
|
// final Map<String, bool> videoOptions = {
|
|
// 'localVideoOn': true,
|
|
// };
|
|
|
|
// final JoinSessionConfig joinSession = JoinSessionConfig(
|
|
// sessionName: sessionName,
|
|
// sessionPassword: password.isEmpty ? null : password,
|
|
// token: token,
|
|
// userName: userName.isEmpty ? 'Guest' : userName,
|
|
// audioOptions: audioOptions,
|
|
// videoOptions: videoOptions,
|
|
// sessionIdleTimeoutMins: 40,
|
|
// );
|
|
|
|
// await _zoom.joinSession(joinSession);
|
|
// } catch (e) {
|
|
// ScaffoldMessenger.of(context).showSnackBar(
|
|
// SnackBar(
|
|
// content: Text('Không thể join Zoom: $e'),
|
|
// ),
|
|
// );
|
|
// } finally {
|
|
// if (mounted) {
|
|
// setState(() {
|
|
// _isJoining = false;
|
|
// });
|
|
// }
|
|
// }
|
|
// }
|
|
|
|
// @override
|
|
// Widget build(BuildContext context) {
|
|
// return Scaffold(
|
|
// appBar: AppBar(
|
|
// title: const Text('Tham gia Zoom (Video SDK)'),
|
|
// ),
|
|
// body: SafeArea(
|
|
// child: Padding(
|
|
// padding: const EdgeInsets.all(kPaddingDefault),
|
|
// child: Column(
|
|
// crossAxisAlignment: CrossAxisAlignment.stretch,
|
|
// children: <Widget>[
|
|
// ConstantWidget.textBodyDefault(
|
|
// 'Nhập thông tin phiên Zoom Video SDK (session) được backend cấp: Session name, Token, mật khẩu (nếu có).',
|
|
// textAlign: TextAlign.left,
|
|
// ),
|
|
// ConstantWidget.heightSpace16,
|
|
// TextField(
|
|
// controller: _sessionNameController,
|
|
// decoration: const InputDecoration(
|
|
// labelText: 'Session name',
|
|
// border: OutlineInputBorder(),
|
|
// ),
|
|
// ),
|
|
// ConstantWidget.heightSpace16,
|
|
// TextField(
|
|
// controller: _userNameController,
|
|
// decoration: const InputDecoration(
|
|
// labelText: 'Tên hiển thị',
|
|
// border: OutlineInputBorder(),
|
|
// ),
|
|
// ),
|
|
// ConstantWidget.heightSpace16,
|
|
// TextField(
|
|
// controller: _tokenController,
|
|
// decoration: const InputDecoration(
|
|
// labelText: 'SDK JWT Token',
|
|
// hintText: 'Token từ server Zoom/Backend',
|
|
// border: OutlineInputBorder(),
|
|
// ),
|
|
// ),
|
|
// ConstantWidget.heightSpace16,
|
|
// TextField(
|
|
// controller: _passwordController,
|
|
// decoration: const InputDecoration(
|
|
// labelText: 'Mật khẩu (nếu có)',
|
|
// border: OutlineInputBorder(),
|
|
// ),
|
|
// ),
|
|
// ConstantWidget.heightSpace24,
|
|
// SizedBox(
|
|
// height: 48,
|
|
// child: ConstantWidget.buildPrimaryButton(
|
|
// onPressed: (_isInitializing || _isJoining) ? null : _onJoin,
|
|
// text: _isJoining ? 'Đang join...' : 'Tham gia',
|
|
// ),
|
|
// ),
|
|
// ],
|
|
// ),
|
|
// ),
|
|
// ),
|
|
// );
|
|
// }
|
|
// }
|