diff --git a/assets/images/zoom/chat-send@2x.png b/assets/images/zoom/chat-send@2x.png new file mode 100644 index 00000000..73e7cd31 Binary files /dev/null and b/assets/images/zoom/chat-send@2x.png differ diff --git a/assets/images/zoom/chat-send@3x.png b/assets/images/zoom/chat-send@3x.png new file mode 100644 index 00000000..2c18a6b9 Binary files /dev/null and b/assets/images/zoom/chat-send@3x.png differ diff --git a/assets/images/zoom/default-avatar.png b/assets/images/zoom/default-avatar.png new file mode 100644 index 00000000..c5fd1e71 Binary files /dev/null and b/assets/images/zoom/default-avatar.png differ diff --git a/assets/images/zoom/hamburger@2x.png b/assets/images/zoom/hamburger@2x.png new file mode 100644 index 00000000..9b490c25 Binary files /dev/null and b/assets/images/zoom/hamburger@2x.png differ diff --git a/assets/images/zoom/hamburger@3x.png b/assets/images/zoom/hamburger@3x.png new file mode 100644 index 00000000..434601f9 Binary files /dev/null and b/assets/images/zoom/hamburger@3x.png differ diff --git a/assets/images/zoom/index.ts b/assets/images/zoom/index.ts new file mode 100644 index 00000000..fce1d508 --- /dev/null +++ b/assets/images/zoom/index.ts @@ -0,0 +1,22 @@ +export const icons = { + chatSend: require('./chat-send.png'), + defaultAvatar: require('./default-avatar.png'), + locked: require('./locked.png'), + more: require('./more.png'), + mute: require('./mute.png'), + muted: require('./muted.png'), + shareOn: require('./share-on.png'), + shareOff: require('./share-off.png'), + speakerOn: require('./speaker-on.png'), + speakerOff: require('./speaker-off.png'), + switchCamera: require('./switch-camera.png'), + hamburger: require('./hamburger.png'), + questionBalloon: require('./question-ballon.png'), + talking: require('./talking.png'), + unmute: require('./unmute.png'), + unlocked: require('./unlocked.png'), + videoOn: require('./video-on.png'), + videoOff: require('./video-off.png'), +}; + +export type IconTypes = keyof typeof icons; diff --git a/assets/images/zoom/locked@2x.png b/assets/images/zoom/locked@2x.png new file mode 100644 index 00000000..c6d98060 Binary files /dev/null and b/assets/images/zoom/locked@2x.png differ diff --git a/assets/images/zoom/locked@3x.png b/assets/images/zoom/locked@3x.png new file mode 100644 index 00000000..170f6e22 Binary files /dev/null and b/assets/images/zoom/locked@3x.png differ diff --git a/assets/images/zoom/more@2x.png b/assets/images/zoom/more@2x.png new file mode 100644 index 00000000..e98bc18e Binary files /dev/null and b/assets/images/zoom/more@2x.png differ diff --git a/assets/images/zoom/more@3x.png b/assets/images/zoom/more@3x.png new file mode 100644 index 00000000..e69710c6 Binary files /dev/null and b/assets/images/zoom/more@3x.png differ diff --git a/assets/images/zoom/mute@2x.png b/assets/images/zoom/mute@2x.png new file mode 100644 index 00000000..65b555a6 Binary files /dev/null and b/assets/images/zoom/mute@2x.png differ diff --git a/assets/images/zoom/mute@3x.png b/assets/images/zoom/mute@3x.png new file mode 100644 index 00000000..da7b29c3 Binary files /dev/null and b/assets/images/zoom/mute@3x.png differ diff --git a/assets/images/zoom/muted@2x.png b/assets/images/zoom/muted@2x.png new file mode 100644 index 00000000..35043632 Binary files /dev/null and b/assets/images/zoom/muted@2x.png differ diff --git a/assets/images/zoom/muted@3x.png b/assets/images/zoom/muted@3x.png new file mode 100644 index 00000000..808ef3e9 Binary files /dev/null and b/assets/images/zoom/muted@3x.png differ diff --git a/assets/images/zoom/question-ballon@2x.png b/assets/images/zoom/question-ballon@2x.png new file mode 100644 index 00000000..ba79fd3f Binary files /dev/null and b/assets/images/zoom/question-ballon@2x.png differ diff --git a/assets/images/zoom/question-ballon@3x.png b/assets/images/zoom/question-ballon@3x.png new file mode 100644 index 00000000..019c69de Binary files /dev/null and b/assets/images/zoom/question-ballon@3x.png differ diff --git a/assets/images/zoom/share-off@2x.png b/assets/images/zoom/share-off@2x.png new file mode 100644 index 00000000..1dba94cb Binary files /dev/null and b/assets/images/zoom/share-off@2x.png differ diff --git a/assets/images/zoom/share-off@3x.png b/assets/images/zoom/share-off@3x.png new file mode 100644 index 00000000..46989fea Binary files /dev/null and b/assets/images/zoom/share-off@3x.png differ diff --git a/assets/images/zoom/share-on@2x.png b/assets/images/zoom/share-on@2x.png new file mode 100644 index 00000000..285118e0 Binary files /dev/null and b/assets/images/zoom/share-on@2x.png differ diff --git a/assets/images/zoom/share-on@3x.png b/assets/images/zoom/share-on@3x.png new file mode 100644 index 00000000..9ed57131 Binary files /dev/null and b/assets/images/zoom/share-on@3x.png differ diff --git a/assets/images/zoom/speaker-off.png b/assets/images/zoom/speaker-off.png new file mode 100644 index 00000000..9763a5a7 Binary files /dev/null and b/assets/images/zoom/speaker-off.png differ diff --git a/assets/images/zoom/speaker-on.png b/assets/images/zoom/speaker-on.png new file mode 100644 index 00000000..f3355ba0 Binary files /dev/null and b/assets/images/zoom/speaker-on.png differ diff --git a/assets/images/zoom/switch-camera.png b/assets/images/zoom/switch-camera.png new file mode 100644 index 00000000..5927b7b7 Binary files /dev/null and b/assets/images/zoom/switch-camera.png differ diff --git a/assets/images/zoom/talking@2x.png b/assets/images/zoom/talking@2x.png new file mode 100644 index 00000000..676d61dd Binary files /dev/null and b/assets/images/zoom/talking@2x.png differ diff --git a/assets/images/zoom/talking@3x.png b/assets/images/zoom/talking@3x.png new file mode 100644 index 00000000..7028a357 Binary files /dev/null and b/assets/images/zoom/talking@3x.png differ diff --git a/assets/images/zoom/unlocked@2x.png b/assets/images/zoom/unlocked@2x.png new file mode 100644 index 00000000..aa5403e2 Binary files /dev/null and b/assets/images/zoom/unlocked@2x.png differ diff --git a/assets/images/zoom/unlocked@3x.png b/assets/images/zoom/unlocked@3x.png new file mode 100644 index 00000000..25f9390f Binary files /dev/null and b/assets/images/zoom/unlocked@3x.png differ diff --git a/assets/images/zoom/unmute@2x.png b/assets/images/zoom/unmute@2x.png new file mode 100644 index 00000000..4c6d2393 Binary files /dev/null and b/assets/images/zoom/unmute@2x.png differ diff --git a/assets/images/zoom/unmute@3x.png b/assets/images/zoom/unmute@3x.png new file mode 100644 index 00000000..dad68fac Binary files /dev/null and b/assets/images/zoom/unmute@3x.png differ diff --git a/assets/images/zoom/video-off@2x.png b/assets/images/zoom/video-off@2x.png new file mode 100644 index 00000000..3e209dd7 Binary files /dev/null and b/assets/images/zoom/video-off@2x.png differ diff --git a/assets/images/zoom/video-off@3x.png b/assets/images/zoom/video-off@3x.png new file mode 100644 index 00000000..06674059 Binary files /dev/null and b/assets/images/zoom/video-off@3x.png differ diff --git a/assets/images/zoom/video-on@2x.png b/assets/images/zoom/video-on@2x.png new file mode 100644 index 00000000..cdd85446 Binary files /dev/null and b/assets/images/zoom/video-on@2x.png differ diff --git a/assets/images/zoom/video-on@3x.png b/assets/images/zoom/video-on@3x.png new file mode 100644 index 00000000..03e69760 Binary files /dev/null and b/assets/images/zoom/video-on@3x.png differ diff --git a/lib/config/config.dart b/lib/config/config.dart index c2828a62..b8c88b61 100644 --- a/lib/config/config.dart +++ b/lib/config/config.dart @@ -6,10 +6,11 @@ const ONLY_LETTERS = "[a-zA-Z &'\"]"; const ONLY_DATE = "[0-9/]"; // const BASE_URL_LIVE_CARE = 'https://livecare.hmg.com/'; const DOCTOR_ROTATION = 'https://doctorrota.hmg.com/'; -const BASE_URL_LIVE_CARE = 'https://livecareuat.hmg.com/'; -const BASE_URL = 'https://hmgwebservices.com/'; +// const BASE_URL_LIVE_CARE = 'https://livecareuat.hmg.com/'; +const BASE_URL_LIVE_CARE = 'https://uat.hmgwebservices.com/'; +// const BASE_URL = 'https://hmgwebservices.com/'; // const BASE_URL = 'http://10.20.200.111:1010/'; -// const BASE_URL = 'https://uat.hmgwebservices.com/'; +const BASE_URL = 'https://uat.hmgwebservices.com/'; // const BASE_URL = 'https://webservices.hmg.com/'; diff --git a/lib/core/service/patient/LiveCarePatientServices.dart b/lib/core/service/patient/LiveCarePatientServices.dart index 4c9d0beb..e9c40207 100644 --- a/lib/core/service/patient/LiveCarePatientServices.dart +++ b/lib/core/service/patient/LiveCarePatientServices.dart @@ -40,7 +40,7 @@ class LiveCarePatientServices extends BaseService { GET_PENDING_PATIENT_ER_FOR_DOCTOR_APP, onSuccess: (dynamic response, int statusCode) { List localPatientList = []; - + _patientList =[]; response['List_PendingPatientList'].forEach((v) { localPatientList.add(PatiantInformtion.fromJson(v)); }); diff --git a/lib/core/viewModel/LiveCarePatientViewModel.dart b/lib/core/viewModel/LiveCarePatientViewModel.dart index 84326d42..60e23833 100644 --- a/lib/core/viewModel/LiveCarePatientViewModel.dart +++ b/lib/core/viewModel/LiveCarePatientViewModel.dart @@ -269,4 +269,7 @@ class LiveCarePatientViewModel extends BaseViewModel { setState(ViewState.Idle); } } + + + } diff --git a/lib/screens/home/home_screen.dart b/lib/screens/home/home_screen.dart index 15fe8db9..364da5e8 100644 --- a/lib/screens/home/home_screen.dart +++ b/lib/screens/home/home_screen.dart @@ -74,7 +74,7 @@ class _HomeScreenState extends State { model.startHomeScreenServices(projectsProvider, authenticationViewModel).then((value) { if (model.radiologyCriticalFindingModel != null) { print("onModelReady radiologyCriticalFindingModel!!!"); - showRadiologyFindingDialog(model); + // showRadiologyFindingDialog(model); } else { print("onModelReady radiologyCriticalFindingModel EMPTYYYY!!!"); } @@ -107,22 +107,22 @@ class _HomeScreenState extends State { Column(children: [ - - InkWell(onTap: (){ - AppPermissionsUtils.requestVideoCallPermission( - context: context, - onTapGrant: () { - Navigator.pushNamed( - context, - "zoom-call", - arguments: CallArguments("ZoomTestHMG", "123", "Doctor", "40", "0", true), - ); - - }); - - }, - child: Text("Zoom Call"), - ), + // + // InkWell(onTap: (){ + // AppPermissionsUtils.requestVideoCallPermission( + // context: context, + // onTapGrant: () { + // Navigator.pushNamed( + // context, + // "zoom-call", + // arguments: CallArguments("ZoomTestHMG", "123", "Doctor", "40", "0", true), + // ); + // + // }); + // + // }, + // child: Text("Zoom Call"), + // ), ProfileWelcomeWidget( Row( mainAxisAlignment: MainAxisAlignment.start, diff --git a/lib/screens/patients/profile/diagnosis/diagnosis_screen.dart b/lib/screens/patients/profile/diagnosis/diagnosis_screen.dart index 2bf1d249..0cbb5dc1 100644 --- a/lib/screens/patients/profile/diagnosis/diagnosis_screen.dart +++ b/lib/screens/patients/profile/diagnosis/diagnosis_screen.dart @@ -34,9 +34,9 @@ class _ProgressNoteState extends State { {bool isLocalBusy = false}) async { final routeArgs = ModalRoute.of(context)!.settings.arguments as Map; PatiantInformtion patient = routeArgs['patient']; - String type = await sharedPref.getString(SLECTED_PATIENT_TYPE); - - print(type); + // String type = await sharedPref.getString(SLECTED_PATIENT_TYPE); + // + // print(type); GetDiagnosisForInPatientRequestModel getDiagnosisForInPatientRequestModel = GetDiagnosisForInPatientRequestModel( admissionNo: int.parse(patient.admissionNo!), diff --git a/lib/screens/patients/profile/profile_screen/patient_profile_screen.dart b/lib/screens/patients/profile/profile_screen/patient_profile_screen.dart index 80162a49..bf7f75d0 100644 --- a/lib/screens/patients/profile/profile_screen/patient_profile_screen.dart +++ b/lib/screens/patients/profile/profile_screen/patient_profile_screen.dart @@ -3,6 +3,7 @@ import 'dart:async'; import 'package:doctor_app_flutter/config/config.dart'; import 'package:doctor_app_flutter/config/size_config.dart'; import 'package:doctor_app_flutter/core/enum/view_state.dart'; +import 'package:doctor_app_flutter/core/model/PatientRegistration/GetPatientInfoRequestModel.dart'; import 'package:doctor_app_flutter/core/model/SOAP/in_patient/post_episode_for_Inpatient_request_model.dart'; import 'package:doctor_app_flutter/core/model/SOAP/post_episode_req_model.dart'; import 'package:doctor_app_flutter/core/model/patient/patiant_info_model.dart'; @@ -21,8 +22,11 @@ import 'package:doctor_app_flutter/utils/translations_delegate_base_utils.dart'; import 'package:doctor_app_flutter/utils/utils.dart'; import 'package:doctor_app_flutter/widgets/patients/profile/app_bar/patient-profile-header-new-design-app-bar.dart'; import 'package:doctor_app_flutter/widgets/shared/app_scaffold_widget.dart'; +import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart'; import 'package:doctor_app_flutter/widgets/shared/buttons/app_buttons_widget.dart'; import 'package:doctor_app_flutter/widgets/shared/loader/gif_loader_dialog_utils.dart'; +import 'package:doctor_app_flutter/widgets/shared/text_fields/app-textfield-custom.dart'; +import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter_svg/svg.dart'; import 'package:hexcolor/hexcolor.dart'; @@ -31,6 +35,7 @@ import 'package:quiver/async.dart'; import '../../../../locator.dart'; import '../../../../routes.dart'; +import '../../../video_call_zoom/zoom_video_call.dart'; class PatientProfileScreen extends StatefulWidget { @override @@ -59,7 +64,8 @@ class _PatientProfileScreenState extends State with Single late TabController _tabController; int index = 0; int _activeTab = 0; - +String noteValidation =""; + TextEditingController noteController = TextEditingController(); late StreamController videoCallDurationStreamController; late Stream videoCallDurationStream; @@ -356,18 +362,33 @@ class _PatientProfileScreenState extends State with Single Utils.showErrorToast(model.error); } else { await model.getDoctorProfile(); - patient.appointmentNo = int.parse(model.startCallRes!.appointmentNo.toString()); + patient.appointmentNo = int.parse(model.startCallRes!.appointmentNo.toString()); patient.episodeNo = 0; - model.updateInCallPatient(patient: patient, appointmentNo: int.parse(model.startCallRes!.appointmentNo.toString())); + model.updateInCallPatient(patient: patient, appointmentNo: int.parse(model.startCallRes!.appointmentNo.toString())); setState(() { isCallStarted = true; }); GifLoaderDialogUtils.hideDialog(context); - AppPermissionsUtils.requestVideoCallPermission( + // AppPermissionsUtils.requestVideoCallPermission( + // context: context, + // onTapGrant: () { + // locator() + // .openVideo(model.startCallRes!, patient, model.startCallRes != null ? model.startCallRes!.isRecording! : true, callConnected, callDisconnected); + // }); + // model.startCallRes!.openTokenID! + AppPermissionsUtils.requestVideoCallPermission( context: context, onTapGrant: () { - locator() - .openVideo(model.startCallRes!, patient, model.startCallRes != null ? model.startCallRes!.isRecording! : true, callConnected, callDisconnected); + Navigator.pushNamed( + context, + "zoom-call", + arguments: CallArguments(model.startCallRes!.openSessionID!, "123", "doctor", "40", "0", true,1), + ).then((completion) { + Future.delayed(const Duration(seconds: 1)) + .then((_) async { + _showEndCallPopup(context, model, patient, patient.vcId!); + }); + }); }); } } @@ -386,7 +407,65 @@ class _PatientProfileScreenState extends State with Single ), ); } + void _showEndCallPopup(BuildContext context,LiveCarePatientViewModel model, PatiantInformtion patient, int vcID) { + showDialog( + context: context, + barrierDismissible: false, + builder: (BuildContext context) { + return AlertDialog( + + title: Text('Call Ended'), + content:SizedBox( + height: 150, + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + AppTextFieldCustom(onChanged: (val){}, onFieldSubmitted: (){}, hintText: "Please enter Notes", height: 100, validationError: noteValidation, controller: noteController, ), + + + ],)), + actions: [ + AppButton( + onPressed: () { + _transferToAdmin(model, patient, vcID); + }, + title: 'Transfer to Admin', + color: Colors.grey, + fontColor: Colors.white, + fontSize: 14, + ), + SizedBox(height: 15,), + AppButton( + onPressed: () { + _endWithCharge(model, patient, vcID); + }, + title: 'End with Charge', + color: Colors.red, + fontColor: Colors.white, + fontSize: 14, + ) + ], + ); + }, + ); + + } + _transferToAdmin(LiveCarePatientViewModel model, PatiantInformtion patient, int vcID){ + if(noteController.text.isEmpty){ + noteValidation ='Please Enter Notes'; + setState(() { + + }); + }else { + model.transferToAdmin(vcID,noteController.text ); + Navigator.of(context).pop(); + } + } + _endWithCharge(LiveCarePatientViewModel model, PatiantInformtion patient, int vcID){ + model.endCallWithCharge(vcID, true); + Navigator.of(context).pop(); + } createEpisode({required PatiantInformtion patient, required SOAPViewModel model}) async { await locator().logEvent( eventCategory: "Patient Profile", diff --git a/lib/screens/prescription/new_prescriptions_page.dart b/lib/screens/prescription/new_prescriptions_page.dart index ddd622c2..efd6f5fe 100644 --- a/lib/screens/prescription/new_prescriptions_page.dart +++ b/lib/screens/prescription/new_prescriptions_page.dart @@ -28,7 +28,7 @@ class NewPrescriptionsPage extends StatelessWidget { return BaseView( onModelReady: (model) async { await model.getPrescriptionListNew( - mrn: patient.patientMRN, appNo: patient.appointmentNo); + mrn: patient.patientMRN, appNo: patient.appointmentNo??0); await model.isPrincipalCovered(patient: patient); }, builder: (_, model, w) => AppScaffold( diff --git a/lib/screens/video_call_zoom/video_view.dart b/lib/screens/video_call_zoom/video_view.dart index f549be26..fc2bde01 100644 --- a/lib/screens/video_call_zoom/video_view.dart +++ b/lib/screens/video_call_zoom/video_view.dart @@ -182,7 +182,7 @@ class VideoView extends FlutterZoomView.ZoomView { child: Image( height: 12, width: 12, - image: isMuted.value ? const AssetImage("assets/imgaes/zoom/muted@2x.png") : const AssetImage("assets/imgaes/zoom/talking@2x.png"), + image: isMuted.value ? const AssetImage("assets/images/zoom/muted@2x.png") : const AssetImage("assets/images/zoom/talking@2x.png"), fit: BoxFit.cover, ), ) @@ -213,7 +213,7 @@ class VideoView extends FlutterZoomView.ZoomView { child: const Image( height: 60, width: 60, - image: AssetImage("assets/imgaes/zoom/default-avatar.png"), + image: AssetImage("assets/images/zoom/default-avatar.png"), )), ), Align( @@ -245,7 +245,7 @@ class VideoView extends FlutterZoomView.ZoomView { child: Image( height: 12, width: 12, - image: isMuted.value ? const AssetImage("assets/imgaes/zoom/muted@2x.png") : const AssetImage("assets/imgaes/zoom/talking@2x.png"), + image: isMuted.value ? const AssetImage("assets/images/zoom/muted@2x.png") : const AssetImage("assets/images/zoom/talking@2x.png"), fit: BoxFit.cover, ), ), diff --git a/lib/screens/video_call_zoom/zoom_video_call.dart b/lib/screens/video_call_zoom/zoom_video_call.dart index fe46d8d0..0887e122 100644 --- a/lib/screens/video_call_zoom/zoom_video_call.dart +++ b/lib/screens/video_call_zoom/zoom_video_call.dart @@ -1,3 +1,4 @@ + import 'dart:async'; import 'dart:convert'; import 'dart:io'; @@ -14,6 +15,7 @@ import 'package:flutter_zoom_videosdk/native/zoom_videosdk_event_listener.dart'; import 'package:flutter_zoom_videosdk/native/zoom_videosdk_live_transcription_message_info.dart'; import 'package:flutter_zoom_videosdk/native/zoom_videosdk_user.dart'; + import 'jwt.dart'; // import '../components/video_view.dart'; @@ -50,7 +52,7 @@ class _CallScreenState extends State { var sharingUser = useState(null); var videoInfo = useState(''); var isSharing = useState(false); - var isMuted = useState(true); + var isMuted = useState(false); var isVideoOn = useState(false); var isSpeakerOn = useState(false); var isRenameModalVisible = useState(false); @@ -78,9 +80,9 @@ class _CallScreenState extends State { Future.microtask(() async { var token = generateJwt(args.sessionName, args.role); try { - Map SDKaudioOptions = {"connect": true, "mute": true, "autoAdjustSpeakerVolume": false}; + Map SDKaudioOptions = {"connect": true, "mute": false, "autoAdjustSpeakerVolume": false}; Map SDKvideoOptions = { - "localVideoOn": true, + "localVideoOn": args.callType == 1 ? true : false, }; JoinSessionConfig joinSession = JoinSessionConfig( sessionName: args.sessionName, @@ -99,7 +101,7 @@ class _CallScreenState extends State { content: Text("Failed to join the session"), ); Future.delayed(const Duration(milliseconds: 1000)).asStream().listen((event) { - Navigator.pop(context); + Navigator.pop(context, true); // Navigator.popAndPushNamed( // context, // "Join", @@ -153,7 +155,8 @@ class _CallScreenState extends State { var muted = await mySelf.audioStatus?.isMuted(); var videoOn = await mySelf.videoStatus?.isOn(); var speakerOn = await zoom.audioHelper.getSpeakerStatus(); - fullScreenUser.value = mySelf; + // fullScreenUser.value = mySelf; + fullScreenUser.value = remoteUsers!.isNotEmpty ? remoteUsers![0] : mySelf; remoteUsers?.insert(0, mySelf); users.value = remoteUsers!; isMuted.value = muted!; @@ -167,6 +170,8 @@ class _CallScreenState extends State { isInSession.value = false; users.value = []; fullScreenUser.value = null; + await zoom.leaveSession(false); + Navigator.pop(context); }); final sessionNeedPasswordListener = emitter.on(EventType.onSessionNeedPassword, (data) async { @@ -264,6 +269,7 @@ class _CallScreenState extends State { List remoteUserList = userListJson.map((userJson) => ZoomVideoSdkUser.fromJson(userJson)).toList(); remoteUserList.insert(0, mySelf!); users.value = remoteUserList; + fullScreenUser.value = remoteUserList[1]; }); final userLeaveListener = emitter.on(EventType.onUserLeave, (data) async { @@ -329,43 +335,45 @@ class _CallScreenState extends State { ZoomVideoSdkUser? mySelf = await zoom.session.getMySelf(); if (data['status'] == RecordingStatus.Start) { if (mySelf != null && !mySelf.isHost!) { - showDialog( - context: context, - builder: (BuildContext context) => AlertDialog( - content: const Text('The session is being recorded.'), - actions: [ - TextButton( - onPressed: () async { - await zoom.acceptRecordingConsent(); - // if (context.mounted) { - Navigator.pop(context); - // }; - }, - child: const Text('accept'), - ), - TextButton( - onPressed: () async { - String currentConsentType = await zoom.getRecordingConsentType(); - if (currentConsentType == ConsentType.ConsentType_Individual) { - await zoom.declineRecordingConsent(); - Navigator.pop(context); - } else { - await zoom.declineRecordingConsent(); - zoom.leaveSession(false); - // if (!context.mounted) return; - // Navigator.popAndPushNamed( - // context, - // "Join", - // arguments: JoinArguments(args.isJoin, sessionName.value, sessionPassword.value, args.displayName, args.sessionIdleTimeoutMins, args.role), - // ); - Navigator.pop(context); - } - }, - child: const Text('decline'), - ), - ], - ), - ); + await zoom.acceptRecordingConsent(); + // isRecordingStarted.value = true; + // showDialog( + // context: context, + // builder: (BuildContext context) => AlertDialog( + // content: const Text('The session is being recorded.'), + // actions: [ + // TextButton( + // onPressed: () async { + // await zoom.acceptRecordingConsent(); + // // if (context.mounted) { + // Navigator.pop(context); + // // }; + // }, + // child: const Text('accept'), + // ), + // TextButton( + // onPressed: () async { + // String currentConsentType = await zoom.getRecordingConsentType(); + // if (currentConsentType == ConsentType.ConsentType_Individual) { + // await zoom.declineRecordingConsent(); + // Navigator.pop(context); + // } else { + // await zoom.declineRecordingConsent(); + // zoom.leaveSession(false); + // // if (!context.mounted) return; + // // Navigator.popAndPushNamed( + // // context, + // // "Join", + // // arguments: JoinArguments(args.isJoin, sessionName.value, sessionPassword.value, args.displayName, args.sessionIdleTimeoutMins, args.role), + // // ); + // Navigator.pop(context); + // } + // }, + // child: const Text('decline'), + // ), + // ], + // ), + // ); } isRecordingStarted.value = true; } else { @@ -466,7 +474,7 @@ class _CallScreenState extends State { ], ), ); - if (errorType == Errors.SessionJoinFailed || errorType == Errors.SessionDisconncting) { + if (errorType == Errors.SessionJoinFailed || errorType == Errors.SessionDisconnecting) { Timer( const Duration(milliseconds: 1000), () => Navigator.pop(context), @@ -641,6 +649,12 @@ class _CallScreenState extends State { padding: const EdgeInsets.only(top: 20, left: 20), child: Text( 'Change Name', + // style: GoogleFonts.lato( + // textStyle: const TextStyle( + // fontSize: 18, + // fontWeight: FontWeight.w500, + // ), + // ), ), ), Padding( @@ -672,6 +686,11 @@ class _CallScreenState extends State { child: InkWell( child: Text( 'Apply', + // style: GoogleFonts.lato( + // textStyle: const TextStyle( + // fontSize: 16, + // ), + // ), ), onTap: () async { if (fullScreenUser.value != null) { @@ -688,7 +707,11 @@ class _CallScreenState extends State { child: InkWell( child: Text( 'Cancel', - + // style: GoogleFonts.lato( + // textStyle: const TextStyle( + // fontSize: 16, + // ), + // ), ), onTap: () async { isRenameModalVisible.value = false; @@ -717,14 +740,25 @@ class _CallScreenState extends State { ListTile( title: Text( 'Adjust Volume', - - + // style: GoogleFonts.lato( + // textStyle: const TextStyle( + // fontSize: 18, + // fontWeight: FontWeight.w600, + // color: Colors.black, + // ), + // ), ), ), ListTile( title: Text( 'Current volume', - + // style: GoogleFonts.lato( + // textStyle: const TextStyle( + // fontSize: 14, + // fontWeight: FontWeight.normal, + // color: Colors.black, + // ), + // ), ), onTap: () async => { debugPrint('user volume'), @@ -738,7 +772,13 @@ class _CallScreenState extends State { ListTile( title: Text( 'Volume up', - + // style: GoogleFonts.lato( + // textStyle: const TextStyle( + // fontSize: 14, + // fontWeight: FontWeight.normal, + // color: Colors.black, + // ), + // ), ), onTap: () async => { userVolume = await user.getUserVolume(user.userId, isShareAudio), @@ -757,7 +797,13 @@ class _CallScreenState extends State { ListTile( title: Text( 'Volume down', - + // style: GoogleFonts.lato( + // textStyle: const TextStyle( + // fontSize: 14, + // fontWeight: FontWeight.normal, + // color: Colors.black, + // ), + // ), ), onTap: () async => { userVolume = await user.getUserVolume(user.userId, isShareAudio), @@ -816,13 +862,25 @@ class _CallScreenState extends State { ListTile( title: Text( 'More', - + // style: GoogleFonts.lato( + // textStyle: const TextStyle( + // fontSize: 18, + // fontWeight: FontWeight.w600, + // color: Colors.black, + // ), + // ), ), ), ListTile( title: Text( 'is Support Virtual Background', - + // style: GoogleFonts.lato( + // textStyle: const TextStyle( + // fontSize: 14, + // fontWeight: FontWeight.normal, + // color: Colors.black, + // ), + // ), ), onTap: () async => { debugPrint("${await zoom.virtualBackgroundHelper.isSupportVirtualBackground()}"), @@ -832,7 +890,13 @@ class _CallScreenState extends State { ListTile( title: Text( 'Get Chat Privilege', - + // style: GoogleFonts.lato( + // textStyle: const TextStyle( + // fontSize: 14, + // fontWeight: FontWeight.normal, + // color: Colors.black, + // ), + // ), ), onTap: () async => { debugPrint("Chat Privilege = ${await zoom.chatHelper.getChatPrivilege()}"), @@ -842,8 +906,13 @@ class _CallScreenState extends State { ListTile( title: Text( 'Get Session Dial-in Number infos', - - + // style: GoogleFonts.lato( + // textStyle: const TextStyle( + // fontSize: 14, + // fontWeight: FontWeight.normal, + // color: Colors.black, + // ), + // ), ), onTap: () async => { debugPrint("session number = ${await zoom.session.getSessionNumber()}"), @@ -853,7 +922,13 @@ class _CallScreenState extends State { ListTile( title: Text( '${isMicOriginalOn.value ? 'Disable' : 'Enable'} Original Sound', - + // style: GoogleFonts.lato( + // textStyle: const TextStyle( + // fontSize: 14, + // fontWeight: FontWeight.normal, + // color: Colors.black, + // ), + // ), ), onTap: () async => { debugPrint("${isMicOriginalOn.value}"), @@ -869,7 +944,13 @@ class _CallScreenState extends State { options.add(ListTile( title: Text( 'Call-out to CRC devices', - + // style: GoogleFonts.lato( + // textStyle: const TextStyle( + // fontSize: 14, + // fontWeight: FontWeight.normal, + // color: Colors.black, + // ), + // ), ), onTap: () async => { debugPrint('CRC result = ${await zoom.CRCHelper.callCRCDevice("bjn.vc", ZoomVideoSdkCRCProtocolType.SIP)}'), @@ -879,7 +960,13 @@ class _CallScreenState extends State { options.add(ListTile( title: Text( 'Cancel call-out to CRC devices', - + // style: GoogleFonts.lato( + // textStyle: const TextStyle( + // fontSize: 14, + // fontWeight: FontWeight.normal, + // color: Colors.black, + // ), + // ), ), onTap: () async => { debugPrint('cancel result= ${await zoom.CRCHelper.cancelCallCRCDevice()}'), @@ -892,7 +979,13 @@ class _CallScreenState extends State { options.add(ListTile( title: Text( 'Turn ${isSpeakerOn.value ? 'off' : 'on'} Speaker', - + // style: GoogleFonts.lato( + // textStyle: const TextStyle( + // fontSize: 14, + // fontWeight: FontWeight.normal, + // color: Colors.black, + // ), + // ), ), onTap: () async => { await zoom.audioHelper.setSpeaker(!isSpeakerOn.value), @@ -907,7 +1000,13 @@ class _CallScreenState extends State { options.add(ListTile( title: Text( '${isShareLocked ? 'Unlock' : 'Lock'} Share', - + // style: GoogleFonts.lato( + // textStyle: const TextStyle( + // fontSize: 14, + // fontWeight: FontWeight.normal, + // color: Colors.black, + // ), + // ), ), onTap: () async => { debugPrint("isShareLocked = ${await zoom.shareHelper.lockShare(!isShareLocked)}"), @@ -916,7 +1015,13 @@ class _CallScreenState extends State { options.add(ListTile( title: Text( 'Change Name', - + // style: GoogleFonts.lato( + // textStyle: const TextStyle( + // fontSize: 14, + // fontWeight: FontWeight.normal, + // color: Colors.black, + // ), + // ), ), onTap: () => { isRenameModalVisible.value = true, @@ -929,7 +1034,13 @@ class _CallScreenState extends State { options.add(ListTile( title: Text( "${startLiveTranscription ? 'Stop' : 'Start'} Live Transcription", - + // style: GoogleFonts.lato( + // textStyle: const TextStyle( + // fontSize: 14, + // fontWeight: FontWeight.normal, + // color: Colors.black, + // ), + // ), ), onTap: () async => { if (startLiveTranscription) @@ -946,7 +1057,13 @@ class _CallScreenState extends State { options.add(ListTile( title: Text( '${isReceiveSpokenLanguageContentEnabled.value ? 'Disable' : 'Enable'} receiving original caption', - + // style: GoogleFonts.lato( + // textStyle: const TextStyle( + // fontSize: 14, + // fontWeight: FontWeight.normal, + // color: Colors.black, + // ), + // ), ), onTap: () async => { await zoom.liveTranscriptionHelper.enableReceiveSpokenLanguageContent(!isReceiveSpokenLanguageContentEnabled.value), @@ -960,7 +1077,13 @@ class _CallScreenState extends State { options.add(ListTile( title: Text( '${isRecordingStarted.value ? 'Stop' : 'Start'} Recording', - + // style: GoogleFonts.lato( + // textStyle: const TextStyle( + // fontSize: 14, + // fontWeight: FontWeight.normal, + // color: Colors.black, + // ), + // ), ), onTap: () async => { if (!isRecordingStarted.value) @@ -979,7 +1102,13 @@ class _CallScreenState extends State { options.add(ListTile( title: Text( 'Mirror the video', - + // style: GoogleFonts.lato( + // textStyle: const TextStyle( + // fontSize: 14, + // fontWeight: FontWeight.normal, + // color: Colors.black, + // ), + // ), ), onTap: () async => { await zoom.videoHelper.mirrorMyVideo(!isVideoMirrored.value), @@ -989,7 +1118,13 @@ class _CallScreenState extends State { options.add(ListTile( title: Text( '${isOriginalAspectRatio.value ? 'Enable' : 'Disable'} original aspect ratio', - + // style: GoogleFonts.lato( + // textStyle: const TextStyle( + // fontSize: 14, + // fontWeight: FontWeight.normal, + // color: Colors.black, + // ), + // ), ), onTap: () async => { await zoom.videoHelper.enableOriginalAspectRatio(!isOriginalAspectRatio.value), @@ -1023,89 +1158,83 @@ class _CallScreenState extends State { } void onLeaveSession(bool isEndSession) async { - - Navigator.pop(context); - Navigator.pop(context); await zoom.leaveSession(isEndSession); - // if (context.mounted) { - // await Navigator.popAndPushNamed( - // context, - // "Join", - // arguments: JoinArguments(!isEndSession, sessionName.value, sessionPassword.value, args.displayName, args.sessionIdleTimeoutMins, args.role), - // ); - // } + Navigator.pop(context); + // Navigator.pop(context); } void showLeaveOptions() async { ZoomVideoSdkUser? mySelf = await zoom.session.getMySelf(); bool isHost = await mySelf!.getIsHost(); - Widget endSession; - Widget leaveSession; - Widget cancel = TextButton( - child: const Text('Cancel'), - onPressed: () { - Navigator.pop(context); //close Dialog - }, - ); + onLeaveSession(true); - switch (defaultTargetPlatform) { - case TargetPlatform.android: - endSession = TextButton( - child: const Text('End Session'), - onPressed: () => onLeaveSession(true), - ); - leaveSession = TextButton( - child: const Text('Leave Session'), - onPressed: () => onLeaveSession(true), - ); - break; - default: - endSession = CupertinoActionSheetAction( - isDestructiveAction: true, - child: const Text('End Session'), - onPressed: () => onLeaveSession(true), - ); - leaveSession = CupertinoActionSheetAction( - child: const Text('Leave Session'), - onPressed: () => onLeaveSession(true), - ); - break; - } - - List options = [ - leaveSession, - cancel, - ]; + // Widget endSession; + // Widget leaveSession; + // Widget cancel = TextButton( + // child: const Text('Cancel'), + // onPressed: () { + // Navigator.pop(context); //close Dialog + // }, + // ); - if (Platform.isAndroid) { - if (isHost) { - options.removeAt(1); - options.insert(0, endSession); - } - showDialog( - context: context, - builder: (context) { - return AlertDialog( - content: const Text("Do you want to leave this session?"), - shape: const RoundedRectangleBorder(borderRadius: BorderRadius.all(Radius.circular(2.0))), - actions: options, - ); - }); - } else { - options.removeAt(1); - if (isHost) { - options.insert(1, endSession); - } - showCupertinoModalPopup( - context: context, - builder: (context) => CupertinoActionSheet( - message: const Text('Are you sure that you want to leave the session?'), - actions: options, - cancelButton: cancel, - ), - ); - } + // switch (defaultTargetPlatform) { + // case TargetPlatform.android: + // endSession = TextButton( + // child: const Text('End Session'), + // onPressed: () => onLeaveSession(true), + // ); + // leaveSession = TextButton( + // child: const Text('Leave Session'), + // onPressed: () => onLeaveSession(false), + // ); + // break; + // default: + // endSession = CupertinoActionSheetAction( + // isDestructiveAction: true, + // child: const Text('End Session'), + // onPressed: () => onLeaveSession(true), + // ); + // leaveSession = CupertinoActionSheetAction( + // child: const Text('Leave Session'), + // onPressed: () => onLeaveSession(false), + // ); + // break; + // } + // + // List options = [ + // leaveSession, + // cancel, + // ]; + // + // if (Platform.isAndroid) { + // if (isHost) { + // options.removeAt(1); + // options.insert(0, endSession); + // } + // showDialog( + // context: context, + // builder: (context) { + // return AlertDialog( + // content: const Text("Do you want to leave this session?"), + // shape: const RoundedRectangleBorder(borderRadius: BorderRadius.all(Radius.circular(2.0))), + // actions: options, + // ); + // }); + // } else { + // options.removeAt(1); + // if (isHost) { + // options.insert(1, endSession); + // } + // showCupertinoModalPopup( + // context: context, + // builder: (context) => CupertinoActionSheet( + // message: const Text('Are you sure that you want to leave the call?'), + // actions: options, + // cancelButton: cancel, + // ), + // ); + // } } final chatMessageController = TextEditingController(); @@ -1153,36 +1282,49 @@ class _CallScreenState extends State { smallView = Container( height: 110, margin: const EdgeInsets.only(left: 20, right: 20), - alignment: Alignment.center, - child: ListView.separated( - scrollDirection: Axis.horizontal, - itemCount: users.value.length, - itemBuilder: (BuildContext context, int index) { - return InkWell( - onTap: () async { - onSelectedUser(users.value[index]); - }, - onDoubleTap: () async { - onSelectedUserVolume(users.value[index]); - }, - child: Center( - child: VideoView( - user: users.value[index], - hasMultiCamera: false, - sharing: sharingUser.value == null ? false : sharingUser.value?.userId == users.value[index].userId, - preview: false, - focused: false, - multiCameraIndex: "0", - videoAspect: VideoAspect.Original, - fullScreen: false, - resolution: VideoResolution.Resolution180, - isPiPView: false, - ), - ), - ); - }, - separatorBuilder: (BuildContext context, int index) => const Divider(), + alignment: Alignment.bottomLeft, + child: VideoView( + user: users.value[0], + hasMultiCamera: false, + sharing: sharingUser.value == null ? false : sharingUser.value?.userId == users.value[0].userId, + preview: false, + focused: false, + multiCameraIndex: "0", + videoAspect: VideoAspect.Original, + fullScreen: false, + resolution: VideoResolution.Resolution180, + isPiPView: false, ), + + // ListView.separated( + // scrollDirection: Axis.horizontal, + // itemCount: users.value.length, + // itemBuilder: (BuildContext context, int index) { + // return InkWell( + // onTap: () async { + // onSelectedUser(users.value[index]); + // }, + // onDoubleTap: () async { + // onSelectedUserVolume(users.value[index]); + // }, + // child: Center( + // child: VideoView( + // user: users.value[index], + // hasMultiCamera: false, + // sharing: sharingUser.value == null ? false : sharingUser.value?.userId == users.value[index].userId, + // preview: false, + // focused: false, + // multiCameraIndex: "0", + // videoAspect: VideoAspect.Original, + // fullScreen: false, + // resolution: VideoResolution.Resolution180, + // isPiPView: false, + // ), + // ), + // ); + // }, + // separatorBuilder: (BuildContext context, int index) => const Divider(), + // ), ); } else { fullScreenView = Container( @@ -1217,113 +1359,154 @@ class _CallScreenState extends State { crossAxisAlignment: CrossAxisAlignment.start, mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ - Container( - height: 70, - width: 150, - margin: const EdgeInsets.only(top: 16, left: 8), - padding: const EdgeInsets.all(8), - alignment: Alignment.topLeft, - decoration: BoxDecoration( - borderRadius: const BorderRadius.all(Radius.circular(8.0)), - color: buttonBackgroundColor, - ), - child: InkWell( - onTap: () async { - showDialog( - context: context, - builder: (context) { - return Dialog( - elevation: 0.0, - insetPadding: const EdgeInsets.symmetric(horizontal: 40), - shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(20)), - child: SizedBox( - height: 280, - width: 200, - child: Column( - crossAxisAlignment: CrossAxisAlignment.stretch, - children: [ - ListView( - shrinkWrap: true, - children: ListTile.divideTiles( - context: context, - tiles: [ - ListTile( - title: Text( - 'Session Information', - - ), - ), - ListTile( - title: Text( - 'Session Name', - - ), - subtitle: Text( - sessionName.value, - - ), - ), - ListTile( - title: Text( - 'Session Password', - - ), - subtitle: Text( - sessionPassword.value, - - ), - ), - ListTile( - title: Text( - 'Participants', - - ), - subtitle: Text( - '${users.value.length}', - - ), - ), - ], - ).toList(), - ), - ], - ), - )); - }); - }, - child: Stack( - children: [ - Column( - children: [ - const Padding(padding: EdgeInsets.symmetric(vertical: 3)), - Align( - alignment: Alignment.centerLeft, - child: Text( - sessionName.value, - overflow: TextOverflow.ellipsis, - - ), - ), - const Padding(padding: EdgeInsets.symmetric(vertical: 5)), - Align( - alignment: Alignment.centerLeft, - child: Text( - "Participants: ${users.value.length}", - - ), - ) - ], - ), - Container( - alignment: Alignment.centerRight, - child: Image.asset( - "assets/images/zoom/unlocked@2x.png", - height: 22, - )), - ], - ), - ), - ), + // Container( + // height: 70, + // width: 150, + // margin: const EdgeInsets.only(top: 16, left: 8), + // padding: const EdgeInsets.all(8), + // alignment: Alignment.topLeft, + // decoration: BoxDecoration( + // borderRadius: const BorderRadius.all(Radius.circular(8.0)), + // color: buttonBackgroundColor, + // ), + // child: InkWell( + // onTap: () async { + // showDialog( + // context: context, + // builder: (context) { + // return Dialog( + // elevation: 0.0, + // insetPadding: const EdgeInsets.symmetric(horizontal: 40), + // shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(20)), + // child: SizedBox( + // height: 280, + // width: 200, + // child: Column( + // crossAxisAlignment: CrossAxisAlignment.stretch, + // children: [ + // ListView( + // shrinkWrap: true, + // children: ListTile.divideTiles( + // context: context, + // tiles: [ + // ListTile( + // title: Text( + // 'Session Information', + // style: GoogleFonts.lato( + // textStyle: const TextStyle( + // fontSize: 18, + // fontWeight: FontWeight.w600, + // ), + // ), + // ), + // ), + // ListTile( + // title: Text( + // 'Session Name', + // style: GoogleFonts.lato( + // textStyle: const TextStyle( + // fontSize: 14, + // ), + // ), + // ), + // subtitle: Text( + // sessionName.value, + // style: GoogleFonts.lato( + // textStyle: const TextStyle( + // fontSize: 12, + // ), + // ), + // ), + // ), + // ListTile( + // title: Text( + // 'Session Password', + // style: GoogleFonts.lato( + // textStyle: const TextStyle( + // fontSize: 14, + // ), + // ), + // ), + // subtitle: Text( + // sessionPassword.value, + // style: GoogleFonts.lato( + // textStyle: const TextStyle( + // fontSize: 12, + // ), + // ), + // ), + // ), + // ListTile( + // title: Text( + // 'Participants', + // style: GoogleFonts.lato( + // textStyle: const TextStyle( + // fontSize: 14, + // ), + // ), + // ), + // subtitle: Text( + // '${users.value.length}', + // style: GoogleFonts.lato( + // textStyle: const TextStyle( + // fontSize: 12, + // ), + // ), + // ), + // ), + // ], + // ).toList(), + // ), + // ], + // ), + // )); + // }); + // }, + // child: Stack( + // children: [ + // // Column( + // // children: [ + // // const Padding(padding: EdgeInsets.symmetric(vertical: 3)), + // // Align( + // // alignment: Alignment.centerLeft, + // // child: Text( + // // sessionName.value, + // // overflow: TextOverflow.ellipsis, + // // style: GoogleFonts.lato( + // // textStyle: const TextStyle( + // // fontSize: 14, + // // fontWeight: FontWeight.w600, + // // color: Colors.white, + // // ), + // // ), + // // ), + // // ), + // // const Padding(padding: EdgeInsets.symmetric(vertical: 5)), + // // Align( + // // alignment: Alignment.centerLeft, + // // child: Text( + // // "Participants: ${users.value.length}", + // // style: GoogleFonts.lato( + // // textStyle: const TextStyle( + // // fontSize: 14, + // // fontWeight: FontWeight.w600, + // // color: Colors.white, + // // ), + // // ), + // // ), + // // ) + // // ], + // // ), + // // Container( + // // alignment: Alignment.centerRight, + // // child: Image.asset( + // // "assets/icons/unlocked@2x.png", + // // height: 22, + // // )), + // ], + // ), + // ), + // ), TextButton( onPressed: (showLeaveOptions), child: Container( @@ -1357,11 +1540,11 @@ class _CallScreenState extends State { iconSize: circleButtonSize, tooltip: isMuted.value == true ? "Unmute" : "Mute", ), - IconButton( - onPressed: onPressShare, - icon: isSharing.value ? Image.asset("assets/images/zoom/share-off@2x.png") : Image.asset("assets/images/zoom/share-on@2x.png"), - iconSize: circleButtonSize, - ), + // IconButton( + // onPressed: onPressShare, + // icon: isSharing.value ? Image.asset("assets/images/new/zoom/share-off@2x.png") : Image.asset("assets/images/new/zoom/share-on@2x.png"), + // iconSize: circleButtonSize, + // ), IconButton( onPressed: onPressVideo, iconSize: circleButtonSize, @@ -1370,45 +1553,20 @@ class _CallScreenState extends State { IconButton( onPressed: onPressCameraChange, iconSize: circleButtonSize, - icon: const Icon(Icons.cameraswitch_sharp, size: 65.0), - ), - IconButton( - onPressed: onPressMore, - icon: Image.asset("assets/images/zoom/more@2x.png"), - iconSize: circleButtonSize, + icon: const Icon( + Icons.cameraswitch_sharp, + size: 45.0, + color: Colors.white, + ), ), + // IconButton( + // onPressed: onPressMore, + // icon: Image.asset("assets/icons/more@2x.png"), + // iconSize: circleButtonSize, + // ), ], ), ), - // Container( - // margin: const EdgeInsets.only(left: 16, right: 16, bottom: 40, top: 10), - // alignment: Alignment.bottomCenter, - // child: SizedBox( - // height: MediaQuery.of(context).viewInsets.bottom == 0 ? 65 : MediaQuery.of(context).viewInsets.bottom + 18, - // child: TextField( - // maxLines: 1, - // textAlign: TextAlign.left, - // style: TextStyle(color: chatTextColor), - // cursorColor: chatTextColor, - // textAlignVertical: TextAlignVertical.center, - // controller: chatMessageController, - // decoration: InputDecoration( - // contentPadding: const EdgeInsets.only(left: 16, top: 10, bottom: 10, right: 16), - // enabledBorder: OutlineInputBorder( - // borderSide: BorderSide(width: 1, color: chatTextColor), //<-- SEE HERE - // ), - // hintText: 'Type comment', - // hintStyle: TextStyle( - // fontSize: 14.0, - // color: chatTextColor, - // ), - // ), - // onSubmitted: (String str) { - // sendChatMessage(str); - // }, - // ), - // ), - // ), Container( alignment: Alignment.bottomLeft, margin: const EdgeInsets.only(bottom: 120), @@ -1432,8 +1590,9 @@ class CallArguments { final String displayName; final String sessionIdleTimeoutMins; final String role; + final int callType; - CallArguments(this.sessionName, this.sessionPwd, this.displayName, this.sessionIdleTimeoutMins, this.role, this.isJoin); + CallArguments(this.sessionName, this.sessionPwd, this.displayName, this.sessionIdleTimeoutMins, this.role, this.isJoin, this.callType); } class JoinArguments { @@ -1445,4 +1604,4 @@ class JoinArguments { final String roleType; JoinArguments(this.isJoin, this.sessionName, this.sessionPwd, this.displayName, this.sessionTimeout, this.roleType); -} +} \ No newline at end of file