|
|
|
@ -38,13 +38,10 @@ import 'package:mohem_flutter_app/models/get_mobile_login_info_list_model.dart';
|
|
|
|
import 'package:mohem_flutter_app/models/member_information_list_model.dart';
|
|
|
|
import 'package:mohem_flutter_app/models/member_information_list_model.dart';
|
|
|
|
import 'package:mohem_flutter_app/models/member_login_list_model.dart';
|
|
|
|
import 'package:mohem_flutter_app/models/member_login_list_model.dart';
|
|
|
|
import 'package:mohem_flutter_app/models/privilege_list_model.dart';
|
|
|
|
import 'package:mohem_flutter_app/models/privilege_list_model.dart';
|
|
|
|
import 'package:mohem_flutter_app/provider/chat_provider_model.dart';
|
|
|
|
|
|
|
|
import 'package:mohem_flutter_app/ui/chat/call/chat_incoming_call_screen.dart';
|
|
|
|
import 'package:mohem_flutter_app/ui/chat/call/chat_incoming_call_screen.dart';
|
|
|
|
import 'package:mohem_flutter_app/widgets/button/default_button.dart';
|
|
|
|
import 'package:mohem_flutter_app/widgets/button/default_button.dart';
|
|
|
|
import 'package:mohem_flutter_app/widgets/button/hmg_connectivity_button.dart';
|
|
|
|
import 'package:mohem_flutter_app/widgets/button/hmg_connectivity_button.dart';
|
|
|
|
import 'package:mohem_flutter_app/widgets/input_widget.dart';
|
|
|
|
import 'package:mohem_flutter_app/widgets/input_widget.dart';
|
|
|
|
import 'package:provider/provider.dart';
|
|
|
|
|
|
|
|
import 'package:signalr_netcore/hub_connection.dart';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// import 'package:safe_device/safe_device.dart';
|
|
|
|
// import 'package:safe_device/safe_device.dart';
|
|
|
|
import 'package:wifi_iot/wifi_iot.dart';
|
|
|
|
import 'package:wifi_iot/wifi_iot.dart';
|
|
|
|
@ -96,9 +93,7 @@ class _LoginScreenState extends State<LoginScreen> with WidgetsBindingObserver {
|
|
|
|
callListeners();
|
|
|
|
callListeners();
|
|
|
|
checkAndNavigationCallingPage();
|
|
|
|
checkAndNavigationCallingPage();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (Platform.isIOS) {
|
|
|
|
setupVoIPCallBacks();
|
|
|
|
setupVoIPCallBacks();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// IOS Voip Call
|
|
|
|
// IOS Voip Call
|
|
|
|
@ -119,8 +114,8 @@ class _LoginScreenState extends State<LoginScreen> with WidgetsBindingObserver {
|
|
|
|
Map<String, dynamic> payload,
|
|
|
|
Map<String, dynamic> payload,
|
|
|
|
) async {
|
|
|
|
) async {
|
|
|
|
_iosCallPayload = IosCallPayload.fromJson(payload);
|
|
|
|
_iosCallPayload = IosCallPayload.fromJson(payload);
|
|
|
|
isIncomingCall = _iosCallPayload!.isIncomingCall!;
|
|
|
|
isIncomingCall = true;
|
|
|
|
// _timeOut();
|
|
|
|
_timeOut();
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
voIPKit.onDidRejectIncomingCall = (
|
|
|
|
voIPKit.onDidRejectIncomingCall = (
|
|
|
|
@ -136,11 +131,10 @@ class _LoginScreenState extends State<LoginScreen> with WidgetsBindingObserver {
|
|
|
|
String callerId,
|
|
|
|
String callerId,
|
|
|
|
) async {
|
|
|
|
) async {
|
|
|
|
var callerID = "did accept call $callerId";
|
|
|
|
var callerID = "did accept call $callerId";
|
|
|
|
isIncomingCall = true;
|
|
|
|
timeOutTimer.cancel();
|
|
|
|
await connectCall();
|
|
|
|
await connectCall();
|
|
|
|
await voIPKit.acceptIncomingCall(callerState: CallStateType.calling);
|
|
|
|
await voIPKit.acceptIncomingCall(callerState: CallStateType.calling);
|
|
|
|
await voIPKit.callConnected();
|
|
|
|
await voIPKit.callConnected();
|
|
|
|
//await voIPKit.
|
|
|
|
|
|
|
|
};
|
|
|
|
};
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@ -159,27 +153,14 @@ class _LoginScreenState extends State<LoginScreen> with WidgetsBindingObserver {
|
|
|
|
|
|
|
|
|
|
|
|
Future<void> connectCall() async {
|
|
|
|
Future<void> connectCall() async {
|
|
|
|
try {
|
|
|
|
try {
|
|
|
|
// Utils.showToast("Connect " + isIncomingCall.toString(),longDuration: true);
|
|
|
|
BuildContext context = AppRoutes.navigatorKey.currentContext!;
|
|
|
|
if (isIncomingCall) {
|
|
|
|
Utils.hideLoading(context);
|
|
|
|
Future.delayed(Duration(seconds: 3),(){
|
|
|
|
Utils.saveStringFromPrefs("iosCallPayload", jsonEncode(_iosCallPayload));
|
|
|
|
BuildContext context = AppRoutes.navigatorKey.currentContext!;
|
|
|
|
var pageRoute = MaterialPageRoute(builder: (context) => StartCallPage());
|
|
|
|
Utils.hideLoading(context);
|
|
|
|
Navigator.push(context, pageRoute).whenComplete(() {
|
|
|
|
if(context !=null) {
|
|
|
|
checkFirebaseToken();
|
|
|
|
Utils.showToast("Connect ---- Conn" , longDuration: true);
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
_iosCallPayload!.isIncomingCall = false;
|
|
|
|
|
|
|
|
Utils.saveStringFromPrefs("iosCallPayload", jsonEncode(_iosCallPayload));
|
|
|
|
|
|
|
|
var pageRoute = MaterialPageRoute(builder: (context) => StartCallPage());
|
|
|
|
|
|
|
|
Navigator.push(context, pageRoute).whenComplete(() {
|
|
|
|
|
|
|
|
// checkFirebaseToken();
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
} catch (e) {
|
|
|
|
} catch (e) {
|
|
|
|
Utils.showToast("Connect " + e.toString(),longDuration: true);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
logger.d(e);
|
|
|
|
logger.d(e);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@ -199,6 +180,17 @@ class _LoginScreenState extends State<LoginScreen> with WidgetsBindingObserver {
|
|
|
|
// print(error);
|
|
|
|
// print(error);
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
|
|
|
|
// Future<void> connectCall() async {
|
|
|
|
|
|
|
|
// try {
|
|
|
|
|
|
|
|
// UserAutoLoginModel userLoginResponse = await ChatApiClient().getUserCallToken(userid: _iosCallPayload!.incomingCallerId!.split("-").last);
|
|
|
|
|
|
|
|
// if (userLoginResponse.response != null) {
|
|
|
|
|
|
|
|
// AppState().setchatUserDetails = userLoginResponse;
|
|
|
|
|
|
|
|
// Utils.saveStringFromPrefs("userLoginChatDetails", jsonEncode(userLoginResponse.response));
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
// } catch (e) {
|
|
|
|
|
|
|
|
// logger.d(e);
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
Future<void> callListeners() async {
|
|
|
|
Future<void> callListeners() async {
|
|
|
|
try {
|
|
|
|
try {
|
|
|
|
@ -400,8 +392,6 @@ class _LoginScreenState extends State<LoginScreen> with WidgetsBindingObserver {
|
|
|
|
Utils.showLoading(context);
|
|
|
|
Utils.showLoading(context);
|
|
|
|
Future.delayed(const Duration(seconds: 2)).whenComplete(() {
|
|
|
|
Future.delayed(const Duration(seconds: 2)).whenComplete(() {
|
|
|
|
if (!isIncomingCall) {
|
|
|
|
if (!isIncomingCall) {
|
|
|
|
// isIncomingCall=true;
|
|
|
|
|
|
|
|
Utils.showToast("Incoming + $isIncomingCall", longDuration: true);
|
|
|
|
|
|
|
|
if (isAppOpenBySystem!) checkFirebaseToken();
|
|
|
|
if (isAppOpenBySystem!) checkFirebaseToken();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|