diff --git a/assets/icons/chat/avi.svg b/assets/icons/chat/avi.svg
new file mode 100644
index 0000000..e99eaef
--- /dev/null
+++ b/assets/icons/chat/avi.svg
@@ -0,0 +1,50 @@
+
+
+
diff --git a/assets/icons/chat/flv.svg b/assets/icons/chat/flv.svg
new file mode 100644
index 0000000..febd584
--- /dev/null
+++ b/assets/icons/chat/flv.svg
@@ -0,0 +1,51 @@
+
+
+
diff --git a/assets/icons/chat/mov.svg b/assets/icons/chat/mov.svg
new file mode 100644
index 0000000..22e41fe
--- /dev/null
+++ b/assets/icons/chat/mov.svg
@@ -0,0 +1,54 @@
+
+
+
diff --git a/assets/icons/chat/mp4.svg b/assets/icons/chat/mp4.svg
new file mode 100644
index 0000000..5d8e9ec
--- /dev/null
+++ b/assets/icons/chat/mp4.svg
@@ -0,0 +1,14 @@
+
diff --git a/lib/api/chat/chat_api_client.dart b/lib/api/chat/chat_api_client.dart
index 6d325bd..7998284 100644
--- a/lib/api/chat/chat_api_client.dart
+++ b/lib/api/chat/chat_api_client.dart
@@ -199,6 +199,7 @@ class ChatApiClient {
"${ApiConsts.getGroupByUserId}${AppState().chatDetails!.response!.id}",
token: AppState().chatDetails!.response!.token,
);
+
if (!kReleaseMode) {
logger.i("res: " + response.body);
}
@@ -354,7 +355,13 @@ class ChatApiClient {
String id = "";
Response response = await ApiClient().postJsonForResponse(
"${ApiConsts.oneSignalCall}players",
- {"app_id": ApiConsts.oneSignalAppID, "identifier": value, "device_type": 0, "test_type": !kReleaseMode ? 1 : 0},
+ {
+ "app_id": ApiConsts.oneSignalAppID,
+ "identifier": value,
+ "device_type": 0,
+ "test_type": !kReleaseMode ? 1 : 0
+ // 1
+ },
);
Map values = jsonDecode(response.body) as Map;
diff --git a/lib/app_state/app_state.dart b/lib/app_state/app_state.dart
index 847d282..e441fa1 100644
--- a/lib/app_state/app_state.dart
+++ b/lib/app_state/app_state.dart
@@ -209,4 +209,12 @@ class AppState {
set setisUserOnline(bool value) {
_isUserOnline = value;
}
+
+ bool _isBackgroundCall = false;
+
+ bool get isBackgroundCall => _isBackgroundCall;
+
+ set isBackgroundCall(bool value) {
+ _isBackgroundCall = value;
+ }
}
diff --git a/lib/classes/chat_call_kit.dart b/lib/classes/chat_call_kit.dart
index 35838a5..e4721eb 100644
--- a/lib/classes/chat_call_kit.dart
+++ b/lib/classes/chat_call_kit.dart
@@ -1,7 +1,6 @@
import 'dart:convert';
import 'package:firebase_messaging/firebase_messaging.dart';
-import 'package:flutter/services.dart';
import 'package:flutter_callkit_incoming/entities/entities.dart';
import 'package:flutter_callkit_incoming/flutter_callkit_incoming.dart';
import 'package:mohem_flutter_app/api/chat/chat_api_client.dart';
@@ -29,7 +28,6 @@ class ChatVoipCall {
dynamic inCallData;
bool isUserOnline = false;
dynamic callData;
- static const platform = MethodChannel('com.example.httpchannel/http');
Future showCallkitIncoming({required String uuid, RemoteMessage? data, CallDataModel? incomingCallData, bool background = false}) async {
await FlutterCallkitIncoming.endAllCalls();
@@ -78,7 +76,7 @@ class ChatVoipCall {
backgroundUrl: 'assets/test.png',
actionColor: '#4CAF50',
),
- ios: IOSParams(
+ ios: const IOSParams(
iconName: 'Mohemm',
handleType: '',
supportsVideo: true,
@@ -149,11 +147,14 @@ class ChatVoipCall {
// logger.log(Level.error, "API-EVENT-END");
}
- Future voipDeclineCall(IosCallPayload? _iosCallPayload) async {
+ Future voipDeclineCall(IosCallPayload? iosCallPayload) async {
try {
- ALM.UserAutoLoginModel model = await ChatApiClient().getUserCallToken(userid: _iosCallPayload!.incomingCallReciverId.toString());
- dynamic Res = await ChatApiClient()
- .callDecline(cUserID: int.parse(_iosCallPayload!.incomingCallerId!), tUserID: int.parse(_iosCallPayload!.incomingCallReciverId.toString()), targetUsertoken: model.response!.token!);
+ print("DeclineVia Flutter");
+ print(iosCallPayload!.toRawJson());
+ IosCallPayload _iosCallPayload = IosCallPayload(incomingCallerId: iosCallPayload.incomingCallerId!.split("-")[0], incomingCallReciverId: iosCallPayload.incomingCallerId!.split("-")[1]);
+ ALM.UserAutoLoginModel model = await ChatApiClient().getUserCallToken(userid: iosCallPayload.incomingCallerId!.split("-")[1]);
+ await ChatApiClient()
+ .callDecline(cUserID: int.parse(_iosCallPayload.incomingCallerId!), tUserID: int.parse(_iosCallPayload.incomingCallReciverId.toString()), targetUsertoken: model.response!.token!);
} catch (err) {
print(err);
}
diff --git a/lib/main.dart b/lib/main.dart
index 1fce2c6..9cc9a68 100644
--- a/lib/main.dart
+++ b/lib/main.dart
@@ -21,7 +21,7 @@ import 'package:provider/single_child_widget.dart';
import 'package:signalr_netcore/hub_connection.dart';
import 'package:sizer/sizer.dart';
-late HubConnection chatHubConnection;
+HubConnection? chatHubConnection;
// test uat account
// username 199067
diff --git a/lib/provider/chat_call_provider.dart b/lib/provider/chat_call_provider.dart
index 0bfa728..9a2bfda 100644
--- a/lib/provider/chat_call_provider.dart
+++ b/lib/provider/chat_call_provider.dart
@@ -15,7 +15,6 @@ import 'package:mohem_flutter_app/models/chat/get_single_user_chat_list_model.da
import 'package:mohem_flutter_app/models/chat/webrtc_payloads.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/landing/dashboard_screen.dart';
import 'package:signalr_netcore/hub_connection.dart';
class ChatCallProvider with ChangeNotifier, DiagnosticableTreeMixin {
@@ -48,20 +47,19 @@ class ChatCallProvider with ChangeNotifier, DiagnosticableTreeMixin {
late BuildContext providerContext;
List devices = [];
- var _videoDeviceId;
void initCallListeners({required BuildContext context}) {
providerContext = context;
if (kDebugMode) {
print("=================== Call Listeners Registered =======================");
}
- chatHubConnection.on("OnCallAcceptedAsync", onCallAcceptedAsync);
- chatHubConnection.on("OnIceCandidateAsync", onIceCandidateAsync);
- chatHubConnection.on("OnOfferAsync", onOfferAsync);
- chatHubConnection.on("OnAnswerOffer", onAnswerOffer);
- chatHubConnection.on("OnHangUpAsync", onHangUpAsync);
- chatHubConnection.on("OnCallDeclinedAsync", onCallDeclinedAsync);
- // chatHubConnection.on("OnIncomingCallAsync", OnIncomingCallAsync);
+ chatHubConnection!.on("OnCallAcceptedAsync", onCallAcceptedAsync);
+ chatHubConnection!.on("OnIceCandidateAsync", onIceCandidateAsync);
+ chatHubConnection!.on("OnOfferAsync", onOfferAsync);
+ chatHubConnection!.on("OnAnswerOffer", onAnswerOffer);
+ chatHubConnection!.on("OnHangUpAsync", onHangUpAsync);
+ chatHubConnection!.on("OnCallDeclinedAsync", onCallDeclinedAsync);
+ // chatHubConnection!.on("OnIncomingCallAsync", OnIncomingCallAsync);
}
// Audio Constraints
@@ -95,7 +93,7 @@ class ChatCallProvider with ChangeNotifier, DiagnosticableTreeMixin {
void connectOutgoing() {
isOutGoingCall = true;
- notifyListeners();
+ // notifyListeners();
}
Future startCall({required String callType, required BuildContext context}) async {
@@ -149,13 +147,11 @@ class ChatCallProvider with ChangeNotifier, DiagnosticableTreeMixin {
if (isCallStarted) {
isIncomingCallLoader = false;
isOutGoingCall = true;
- Navigator.push(
+ Navigator.pushReplacement(
providerContext,
MaterialPageRoute(
builder: (BuildContext context) => StartCallPage(),
- )).then((value) {
- Navigator.of(providerContext).pop();
- });
+ ));
}
}
}
@@ -187,7 +183,7 @@ class ChatCallProvider with ChangeNotifier, DiagnosticableTreeMixin {
Future endCall({required bool isUserOnline}) async {
if (isIncomingCall) {
logger.i("-----------------------Endeddddd By Me---------------------------");
- if (chatHubConnection.state == HubConnectionState.Connected) {
+ if (chatHubConnection!.state == HubConnectionState.Connected) {
await invoke(invokeMethod: "HangUpAsync", currentUserID: AppState().chatDetails!.response!.id!, targetUserID: incomingCallData.targetUserId!, userStatus: 0);
await invoke(invokeMethod: "UpdateUserStatusAsync", currentUserID: AppState().chatDetails!.response!.id!, targetUserID: incomingCallData.targetUserId!, userStatus: 1);
}
@@ -202,7 +198,9 @@ class ChatCallProvider with ChangeNotifier, DiagnosticableTreeMixin {
if (isCallConnected) {
if (_pc.connectionState == RTCPeerConnectionState.RTCPeerConnectionStateConnected) {
- print("------------------ PC Stopped ----------------------------");
+ if (kDebugMode) {
+ print("------------------ PC Stopped ----------------------------");
+ }
_pc.close();
_pc.dispose();
}
@@ -221,7 +219,7 @@ class ChatCallProvider with ChangeNotifier, DiagnosticableTreeMixin {
_localStream = null;
}
if (chatHubConnection != null && !isUserOnline) {
- chatHubConnection.stop();
+ chatHubConnection!.stop();
}
await FlutterCallkitIncoming.endAllCalls();
return true;
@@ -281,13 +279,26 @@ class ChatCallProvider with ChangeNotifier, DiagnosticableTreeMixin {
}
void onHangUpAsync(List