You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
mohemm-flutter-app/lib/ui/chat/call/start_call_screen.dart

285 lines
14 KiB
Dart

import 'dart:convert';
import 'dart:core';
import 'package:draggable_widget/draggable_widget.dart';
import 'package:flutter/material.dart';
import 'package:flutter_callkit_incoming/flutter_callkit_incoming.dart';
import 'package:mohem_flutter_app/main.dart';
import 'package:mohem_flutter_app/models/chat/incoming_call_model.dart';
class StartCallPage extends StatefulWidget {
@override
_StartCallPageState createState() => _StartCallPageState();
}
class _StartCallPageState extends State<StartCallPage> {
final dragController = DragController();
@override
void initState() {
super.initState();
startCall();
}
@override
void dispose() {
super.dispose();
}
void startCall() async {
IncomingCallModel? sessionData;
var calls = await FlutterCallkitIncoming.activeCalls();
if (calls.isNotEmpty) {
sessionData = IncomingCallModel.fromRawJson(jsonEncode(calls[0]));
}
logger.d(sessionData!.extra!.isIncomingCall);
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: Container(
color: Colors.red,
width: 200,
height: 200,
),
),
);
// return Scaffold(
// extendBody: true,
// body: Consumer2<ChatCallProvider, ChatProviderModel>(builder: (BuildContext context, ChatCallProvider provider, ChatProviderModel cpm, Widget? child) {
// // if (provider.isEndedByCaller && Platform.isAndroid) SystemNavigator.pop();
// return SizedBox(
// width: double.infinity,
// height: double.infinity,
// child:Stack(
// alignment: FractionalOffset.center,
// children: <Widget>[
// if(!provider.isAudioCall && provider.isVideoCall)
// Positioned.fill(
// child: RTCVideoView(
// provider.remoteRenderer!,
// objectFit: RTCVideoViewObjectFit.RTCVideoViewObjectFitCover,
// key: const Key('remote'),
// ),
// ),
// if (provider.isVideoCall)
// DraggableWidget(
// bottomMargin: 20,
// topMargin: 40,
// intialVisibility: true,
// horizontalSpace: 20,
// shadowBorderRadius: 50,
// initialPosition: AnchoringPosition.topLeft,
// dragController: dragController,
// normalShadow: const BoxShadow(spreadRadius: 0.0, blurRadius: 0.0),
// draggingShadow: const BoxShadow(spreadRadius: 0.0, blurRadius: 0.0),
// child: SizedBox(
// height: 200,
// width: 140,
// child: RTCVideoView(
// provider.localVideoRenderer,
// mirror: true,
// objectFit: RTCVideoViewObjectFit.RTCVideoViewObjectFitCover,
// ),
// ),
// ),
// if (!provider.isVideoCall)
// Positioned.fill(
// child: ClipRect(
// child: BackdropFilter(
// filter: ImageFilter.blur(sigmaX: 5.0, sigmaY: 5.0),
// child: Container(
// decoration: BoxDecoration(
// color: MyColors.grey57Color.withOpacity(
// 0.3,
// ),
// ),
// child: Column(
// crossAxisAlignment: CrossAxisAlignment.start,
// mainAxisSize: MainAxisSize.max,
// children: <Widget>[
// 40.height,
// Row(
// crossAxisAlignment: CrossAxisAlignment.center,
// mainAxisAlignment: MainAxisAlignment.center,
// children: <Widget>[
// Container(
// margin: const EdgeInsets.all(21.0),
// child: Container(
// margin: const EdgeInsets.only(
// left: 10.0,
// right: 10.0,
// ),
// child: Column(
// crossAxisAlignment: CrossAxisAlignment.center,
// mainAxisSize: MainAxisSize.min,
// mainAxisAlignment: MainAxisAlignment.spaceAround,
// children: <Widget>[
// SvgPicture.asset(
// "assets/images/user.svg",
// height: 70,
// width: 70,
// fit: BoxFit.cover,
// ),
// 10.height,
// Text(
// provider.outGoingCallData.receiverName!,
// style: const TextStyle(
// fontSize: 21,
// decoration: TextDecoration.none,
// fontWeight: FontWeight.bold,
// color: MyColors.white,
// letterSpacing: -1.26,
// height: 23 / 12,
// ),
// ),
// const Text(
// "On Call",
// style: TextStyle(
// fontSize: 16,
// decoration: TextDecoration.none,
// fontWeight: FontWeight.w600,
// color: Color(
// 0xffC6C6C6,
// ),
// letterSpacing: -0.48,
// height: 23 / 24,
// ),
// ),
// const SizedBox(
// height: 2,
// ),
// ],
// ),
// ),
// ),
// ],
// ),
// ],
// ),
// ),
// ),
// ),
// ),
// Align(
// alignment: Alignment.bottomCenter,
// child: Container(
// padding: const EdgeInsets.only(
// bottom: 20,
// left: 40,
// right: 40,
// ),
// child: Row(
// mainAxisSize: MainAxisSize.max,
// mainAxisAlignment: MainAxisAlignment.spaceBetween,
// children: <Widget>[
// // if (provider.isVideoCall)
// RawMaterialButton(
// constraints: const BoxConstraints(),
// onPressed: () {
// provider.loudOn();
// },
// elevation: 2.0,
// fillColor: provider.isLoudSpeaker ? MyColors.textMixColor : Colors.grey,
// padding: const EdgeInsets.all(
// 10.0,
// ),
// shape: const CircleBorder(),
// child: const Icon(
// Icons.volume_up,
// color: MyColors.white,
// size: 30.0,
// ),
// ),
// RawMaterialButton(
// constraints: const BoxConstraints(),
// onPressed: () {
// provider.camOff();
// },
// elevation: 2.0,
// fillColor: provider.isCamOff ? MyColors.textMixColor : Colors.grey,
// padding: const EdgeInsets.all(
// 10.0,
// ),
// shape: const CircleBorder(),
// child: Icon(
// provider.isCamOff ? Icons.videocam_off : Icons.videocam,
// color: MyColors.white,
// size: 30.0,
// ),
// ),
// RawMaterialButton(
// constraints: const BoxConstraints(),
// onPressed: () {
// provider.switchCamera();
// },
// elevation: 2.0,
// fillColor: provider.isFrontCamera ? Colors.grey : MyColors.textMixColor,
// padding: const EdgeInsets.all(
// 10.0,
// ),
// shape: const CircleBorder(),
// child: Icon(
// provider.isFrontCamera ? Icons.switch_camera_outlined : Icons.switch_camera,
// color: MyColors.white,
// size: 30.0,
// ),
// ),
// RawMaterialButton(
// constraints: const BoxConstraints(),
// onPressed: () {
// provider.micOff();
// },
// elevation: 2.0,
// fillColor: provider.isMicOff ? MyColors.textMixColor : Colors.grey,
// padding: const EdgeInsets.all(
// 10.0,
// ),
// shape: const CircleBorder(),
// child: Icon(
// provider.isMicOff ? Icons.mic_off : Icons.mic,
// color: MyColors.white,
// size: 30.0,
// ),
// ),
// RawMaterialButton(
// constraints: const BoxConstraints(),
// onPressed: () {
// provider.endCall().then((value) {
// if (value) {
// Navigator.of(context).pop();
// }
// });
// },
// elevation: 2.0,
// fillColor: MyColors.redA3Color,
// padding: const EdgeInsets.all(
// 10.0,
// ),
// shape: const CircleBorder(),
// child: const Icon(
// Icons.call_end,
// color: MyColors.white,
// size: 30.0,
// ),
// ),
// ],
// ),
// ),
// ),
// ],
// )
// );
// }),
// );
}
}
/// if (Platform.isAndroid) {
// SystemNavigator.pop();
// } else if (Platform.isIOS) {
// exit(0);
// }