@cometchat/skills 4.3.0 → 4.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/bin/install.js +27 -0
- package/package.json +14 -1
- package/skills/cometchat/SKILL.md +233 -69
- package/skills/cometchat/references/asking-questions.md +48 -0
- package/skills/cometchat-a11y/SKILL.md +3 -2
- package/skills/cometchat-android-v5/SKILL.md +2 -1
- package/skills/cometchat-android-v5-calls/SKILL.md +36 -22
- package/skills/cometchat-android-v5-calls/references/README.md +1 -1
- package/skills/cometchat-android-v5-calls/references/add-calls-to-existing-chat.md +7 -5
- package/skills/cometchat-android-v5-calls/references/audio-controls.md +4 -4
- package/skills/cometchat-android-v5-calls/references/call-layouts.md +33 -25
- package/skills/cometchat-android-v5-calls/references/call-session.md +2 -2
- package/skills/cometchat-android-v5-calls/references/custom-ui.md +5 -5
- package/skills/cometchat-android-v5-calls/references/event-listeners.md +2 -2
- package/skills/cometchat-android-v5-calls/references/idle-timeout.md +20 -14
- package/skills/cometchat-android-v5-calls/references/in-call-chat.md +1 -1
- package/skills/cometchat-android-v5-calls/references/migration-v4-to-v5.md +43 -27
- package/skills/cometchat-android-v5-calls/references/participant-management.md +3 -3
- package/skills/cometchat-android-v5-calls/references/raise-hand.md +25 -19
- package/skills/cometchat-android-v5-calls/references/recording.md +2 -2
- package/skills/cometchat-android-v5-calls/references/ringing-integration.md +1 -1
- package/skills/cometchat-android-v5-calls/references/screen-sharing.md +5 -9
- package/skills/cometchat-android-v5-calls/references/session-settings.md +3 -3
- package/skills/cometchat-android-v5-calls/references/setup.md +1 -1
- package/skills/cometchat-android-v5-calls/references/share-invite.md +9 -4
- package/skills/cometchat-android-v5-calls/references/video-controls.md +4 -4
- package/skills/cometchat-android-v5-calls/references/voip-calling.md +2 -2
- package/skills/cometchat-android-v5-components/SKILL.md +4 -3
- package/skills/cometchat-android-v5-core/SKILL.md +5 -3
- package/skills/cometchat-android-v5-customization/SKILL.md +171 -7
- package/skills/cometchat-android-v5-extensions/SKILL.md +7 -4
- package/skills/cometchat-android-v5-features/SKILL.md +5 -4
- package/skills/cometchat-android-v5-placement/SKILL.md +2 -1
- package/skills/cometchat-android-v5-production/SKILL.md +2 -1
- package/skills/cometchat-android-v5-push/SKILL.md +2 -3
- package/skills/cometchat-android-v5-testing/SKILL.md +2 -1
- package/skills/cometchat-android-v5-theming/SKILL.md +2 -1
- package/skills/cometchat-android-v5-troubleshooting/SKILL.md +3 -2
- package/skills/cometchat-android-v6/SKILL.md +2 -1
- package/skills/cometchat-android-v6-builder-settings/SKILL.md +11 -7
- package/skills/cometchat-android-v6-calls/SKILL.md +79 -18
- package/skills/cometchat-android-v6-calls/references/advanced-features.md +87 -0
- package/skills/cometchat-android-v6-calls/references/call-layouts.md +24 -15
- package/skills/cometchat-android-v6-calls/references/call-session.md +2 -2
- package/skills/cometchat-android-v6-calls/references/device-management.md +17 -16
- package/skills/cometchat-android-v6-calls/references/idle-timeout.md +7 -4
- package/skills/cometchat-android-v6-calls/references/in-call-chat.md +13 -8
- package/skills/cometchat-android-v6-calls/references/raise-hand.md +6 -4
- package/skills/cometchat-android-v6-compose-components/SKILL.md +52 -29
- package/skills/cometchat-android-v6-compose-customization/SKILL.md +156 -1
- package/skills/cometchat-android-v6-compose-placement/SKILL.md +129 -40
- package/skills/cometchat-android-v6-compose-theming/SKILL.md +27 -1
- package/skills/cometchat-android-v6-core/SKILL.md +208 -28
- package/skills/cometchat-android-v6-events/SKILL.md +4 -1
- package/skills/cometchat-android-v6-extensions/SKILL.md +2 -1
- package/skills/cometchat-android-v6-features/SKILL.md +26 -2
- package/skills/cometchat-android-v6-kotlin-components/SKILL.md +31 -1
- package/skills/cometchat-android-v6-kotlin-customization/SKILL.md +172 -1
- package/skills/cometchat-android-v6-kotlin-placement/SKILL.md +20 -5
- package/skills/cometchat-android-v6-kotlin-theming/SKILL.md +36 -5
- package/skills/cometchat-android-v6-migration/SKILL.md +44 -42
- package/skills/cometchat-android-v6-production/SKILL.md +6 -3
- package/skills/cometchat-android-v6-push/SKILL.md +43 -2
- package/skills/cometchat-android-v6-testing/SKILL.md +11 -8
- package/skills/cometchat-android-v6-troubleshooting/SKILL.md +26 -5
- package/skills/cometchat-angular-calls/SKILL.md +256 -389
- package/skills/cometchat-angular-calls/references/add-calls-to-existing-chat.md +3 -2
- package/skills/cometchat-angular-calls/references/call-layouts.md +29 -12
- package/skills/cometchat-angular-calls/references/call-session.md +2 -2
- package/skills/cometchat-angular-calls/references/custom-ui.md +18 -10
- package/skills/cometchat-angular-calls/references/device-management.md +53 -34
- package/skills/cometchat-angular-calls/references/group-calls.md +45 -24
- package/skills/cometchat-angular-calls/references/idle-timeout.md +31 -15
- package/skills/cometchat-angular-calls/references/ngzone-and-async-callbacks.md +7 -6
- package/skills/cometchat-angular-calls/references/raise-hand.md +9 -4
- package/skills/cometchat-angular-calls/references/recording-screen-share.md +32 -39
- package/skills/cometchat-angular-calls/references/ringing-integration.md +3 -1
- package/skills/cometchat-angular-calls/references/share-invite.md +11 -5
- package/skills/cometchat-angular-calls/references/virtual-background.md +29 -0
- package/skills/cometchat-angular-components/SKILL.md +149 -620
- package/skills/cometchat-angular-core/SKILL.md +232 -312
- package/skills/cometchat-angular-customization/SKILL.md +415 -223
- package/skills/cometchat-angular-features/SKILL.md +216 -334
- package/skills/cometchat-angular-patterns/SKILL.md +168 -359
- package/skills/cometchat-angular-placement/SKILL.md +189 -560
- package/skills/cometchat-angular-production/SKILL.md +241 -92
- package/skills/cometchat-angular-push/SKILL.md +280 -294
- package/skills/cometchat-angular-testing/SKILL.md +430 -158
- package/skills/cometchat-angular-theming/SKILL.md +190 -265
- package/skills/cometchat-angular-troubleshooting/SKILL.md +192 -157
- package/skills/cometchat-astro-patterns/SKILL.md +3 -2
- package/skills/cometchat-calls/SKILL.md +25 -19
- package/skills/cometchat-calls/references/use-case-broadcast.md +15 -10
- package/skills/cometchat-calls/references/use-case-marketplace.md +2 -3
- package/skills/cometchat-calls/references/use-case-support.md +3 -4
- package/skills/cometchat-calls/references/use-case-team.md +23 -12
- package/skills/cometchat-calls/references/use-case-telehealth.md +3 -4
- package/skills/cometchat-components/SKILL.md +163 -25
- package/skills/cometchat-core/SKILL.md +258 -20
- package/skills/cometchat-customization/SKILL.md +50 -25
- package/skills/cometchat-features/SKILL.md +314 -35
- package/skills/cometchat-flutter-v5/SKILL.md +10 -4
- package/skills/cometchat-flutter-v5-calls/SKILL.md +188 -158
- package/skills/cometchat-flutter-v5-calls/references/add-calls-to-existing-chat.md +48 -24
- package/skills/cometchat-flutter-v5-calls/references/call-layouts.md +20 -15
- package/skills/cometchat-flutter-v5-calls/references/call-session.md +100 -145
- package/skills/cometchat-flutter-v5-calls/references/device-management.md +12 -8
- package/skills/cometchat-flutter-v5-calls/references/group-calls.md +30 -36
- package/skills/cometchat-flutter-v5-calls/references/idle-timeout.md +15 -13
- package/skills/cometchat-flutter-v5-calls/references/in-call-chat.md +12 -9
- package/skills/cometchat-flutter-v5-calls/references/migration-v4-to-v5.md +115 -65
- package/skills/cometchat-flutter-v5-calls/references/raise-hand.md +41 -30
- package/skills/cometchat-flutter-v5-calls/references/ringing-integration.md +17 -14
- package/skills/cometchat-flutter-v5-calls/references/share-invite.md +8 -2
- package/skills/cometchat-flutter-v5-conversations/SKILL.md +2 -1
- package/skills/cometchat-flutter-v5-core/SKILL.md +5 -4
- package/skills/cometchat-flutter-v5-customization/SKILL.md +136 -5
- package/skills/cometchat-flutter-v5-events/SKILL.md +2 -1
- package/skills/cometchat-flutter-v5-messages/SKILL.md +2 -1
- package/skills/cometchat-flutter-v5-production/SKILL.md +15 -6
- package/skills/cometchat-flutter-v5-push/SKILL.md +2 -1
- package/skills/cometchat-flutter-v5-testing/SKILL.md +17 -6
- package/skills/cometchat-flutter-v5-theming/SKILL.md +2 -1
- package/skills/cometchat-flutter-v5-troubleshooting/SKILL.md +7 -6
- package/skills/cometchat-flutter-v5-users-groups/SKILL.md +3 -2
- package/skills/cometchat-flutter-v6/SKILL.md +17 -16
- package/skills/cometchat-flutter-v6-calls/SKILL.md +72 -57
- package/skills/cometchat-flutter-v6-calls/references/add-calls-to-existing-chat.md +5 -3
- package/skills/cometchat-flutter-v6-calls/references/advanced-features.md +89 -0
- package/skills/cometchat-flutter-v6-calls/references/call-layouts.md +15 -12
- package/skills/cometchat-flutter-v6-calls/references/call-session.md +2 -2
- package/skills/cometchat-flutter-v6-calls/references/device-management.md +9 -3
- package/skills/cometchat-flutter-v6-calls/references/group-calls.md +10 -10
- package/skills/cometchat-flutter-v6-calls/references/idle-timeout.md +15 -7
- package/skills/cometchat-flutter-v6-calls/references/in-call-chat.md +6 -3
- package/skills/cometchat-flutter-v6-calls/references/raise-hand.md +23 -16
- package/skills/cometchat-flutter-v6-components/SKILL.md +32 -11
- package/skills/cometchat-flutter-v6-conversations/SKILL.md +39 -11
- package/skills/cometchat-flutter-v6-core/SKILL.md +182 -21
- package/skills/cometchat-flutter-v6-customization/SKILL.md +97 -25
- package/skills/cometchat-flutter-v6-events/SKILL.md +3 -2
- package/skills/cometchat-flutter-v6-features/SKILL.md +15 -6
- package/skills/cometchat-flutter-v6-messages/SKILL.md +111 -60
- package/skills/cometchat-flutter-v6-migration/SKILL.md +18 -25
- package/skills/cometchat-flutter-v6-placement/SKILL.md +79 -50
- package/skills/cometchat-flutter-v6-production/SKILL.md +13 -12
- package/skills/cometchat-flutter-v6-push/SKILL.md +41 -19
- package/skills/cometchat-flutter-v6-testing/SKILL.md +4 -4
- package/skills/cometchat-flutter-v6-theming/SKILL.md +38 -5
- package/skills/cometchat-flutter-v6-troubleshooting/SKILL.md +182 -17
- package/skills/cometchat-flutter-v6-users-groups/SKILL.md +12 -4
- package/skills/cometchat-i18n/SKILL.md +140 -79
- package/skills/cometchat-ios/SKILL.md +4 -2
- package/skills/cometchat-ios-calls/SKILL.md +225 -95
- package/skills/cometchat-ios-calls/references/add-calls-to-existing-chat.md +11 -9
- package/skills/cometchat-ios-calls/references/audio-modes-and-controls.md +45 -0
- package/skills/cometchat-ios-calls/references/avaudiosession-routing.md +6 -7
- package/skills/cometchat-ios-calls/references/call-layouts.md +31 -91
- package/skills/cometchat-ios-calls/references/call-session.md +51 -54
- package/skills/cometchat-ios-calls/references/callkit-and-pushkit.md +33 -29
- package/skills/cometchat-ios-calls/references/custom-ui.md +38 -38
- package/skills/cometchat-ios-calls/references/group-calls.md +33 -70
- package/skills/cometchat-ios-calls/references/idle-timeout.md +24 -25
- package/skills/cometchat-ios-calls/references/in-call-chat.md +19 -23
- package/skills/cometchat-ios-calls/references/migration-v4-to-v5.md +128 -70
- package/skills/cometchat-ios-calls/references/picture-in-picture.md +20 -20
- package/skills/cometchat-ios-calls/references/raise-hand.md +14 -227
- package/skills/cometchat-ios-calls/references/recording-screen-share.md +35 -122
- package/skills/cometchat-ios-calls/references/ringing-integration.md +17 -16
- package/skills/cometchat-ios-calls/references/share-invite.md +8 -12
- package/skills/cometchat-ios-calls/references/swiftui-uikit-hosting.md +4 -4
- package/skills/cometchat-ios-components/SKILL.md +200 -12
- package/skills/cometchat-ios-core/SKILL.md +173 -45
- package/skills/cometchat-ios-customization/SKILL.md +276 -110
- package/skills/cometchat-ios-features/SKILL.md +64 -36
- package/skills/cometchat-ios-placement/SKILL.md +15 -12
- package/skills/cometchat-ios-production/SKILL.md +12 -4
- package/skills/cometchat-ios-push/SKILL.md +53 -19
- package/skills/cometchat-ios-testing/SKILL.md +14 -9
- package/skills/cometchat-ios-theming/SKILL.md +39 -3
- package/skills/cometchat-ios-troubleshooting/SKILL.md +41 -21
- package/skills/cometchat-native-bare-patterns/SKILL.md +36 -19
- package/skills/cometchat-native-calls/SKILL.md +29 -17
- package/skills/cometchat-native-calls/references/add-calls-to-existing-chat.md +2 -2
- package/skills/cometchat-native-calls/references/call-layouts.md +15 -14
- package/skills/cometchat-native-calls/references/call-session.md +2 -2
- package/skills/cometchat-native-calls/references/custom-ui.md +12 -8
- package/skills/cometchat-native-calls/references/device-management.md +53 -30
- package/skills/cometchat-native-calls/references/group-calls.md +35 -30
- package/skills/cometchat-native-calls/references/idle-timeout.md +6 -6
- package/skills/cometchat-native-calls/references/in-call-chat.md +10 -8
- package/skills/cometchat-native-calls/references/migration-v4-to-v5.md +2 -2
- package/skills/cometchat-native-calls/references/raise-hand.md +15 -13
- package/skills/cometchat-native-calls/references/recording-screen-share.md +49 -170
- package/skills/cometchat-native-calls/references/share-invite.md +7 -5
- package/skills/cometchat-native-calls/references/voip-push-end-to-end.md +4 -2
- package/skills/cometchat-native-components/SKILL.md +84 -52
- package/skills/cometchat-native-core/SKILL.md +102 -33
- package/skills/cometchat-native-customization/SKILL.md +150 -28
- package/skills/cometchat-native-expo-patterns/SKILL.md +60 -29
- package/skills/cometchat-native-features/SKILL.md +24 -17
- package/skills/cometchat-native-placement/SKILL.md +19 -10
- package/skills/cometchat-native-production/SKILL.md +9 -3
- package/skills/cometchat-native-push/SKILL.md +2 -1
- package/skills/cometchat-native-testing/SKILL.md +1 -2
- package/skills/cometchat-native-theming/SKILL.md +54 -29
- package/skills/cometchat-native-troubleshooting/SKILL.md +11 -5
- package/skills/cometchat-nextjs-patterns/SKILL.md +22 -8
- package/skills/cometchat-placement/SKILL.md +42 -3
- package/skills/cometchat-production/SKILL.md +12 -5
- package/skills/cometchat-react-calls/SKILL.md +220 -10
- package/skills/cometchat-react-calls/references/add-calls-to-existing-chat.md +4 -3
- package/skills/cometchat-react-calls/references/call-layouts.md +5 -6
- package/skills/cometchat-react-calls/references/call-session.md +1 -1
- package/skills/cometchat-react-calls/references/custom-ui.md +61 -15
- package/skills/cometchat-react-calls/references/device-management.md +55 -51
- package/skills/cometchat-react-calls/references/group-calls.md +18 -23
- package/skills/cometchat-react-calls/references/idle-timeout.md +25 -12
- package/skills/cometchat-react-calls/references/in-call-chat.md +7 -7
- package/skills/cometchat-react-calls/references/migration-v4-to-v5.md +9 -11
- package/skills/cometchat-react-calls/references/raise-hand.md +14 -14
- package/skills/cometchat-react-calls/references/recording-screen-share.md +39 -38
- package/skills/cometchat-react-calls/references/ringing-integration.md +2 -2
- package/skills/cometchat-react-calls/references/share-invite.md +4 -5
- package/skills/cometchat-react-calls/references/testing-calls-on-web.md +20 -2
- package/skills/cometchat-react-calls/references/virtual-background.md +32 -0
- package/skills/cometchat-react-patterns/SKILL.md +45 -5
- package/skills/cometchat-react-push/SKILL.md +258 -72
- package/skills/cometchat-react-router-patterns/SKILL.md +12 -6
- package/skills/cometchat-react-testing/SKILL.md +14 -5
- package/skills/cometchat-theming/SKILL.md +181 -18
- package/skills/cometchat-troubleshooting/SKILL.md +40 -20
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
# Group calls — broadcast meeting pattern (Flutter V5)
|
|
2
2
|
|
|
3
|
-
Group calls use a **different signaling channel than 1:1 user calls**. The Ringing flow (`CometChat.initiateCall` → `onIncomingCallReceived` on peer) is **1:1 user only**. For groups,
|
|
3
|
+
Group calls use a **different signaling channel than 1:1 user calls**. The Ringing flow (`CometChat.initiateCall` → `onIncomingCallReceived` on peer) is **1:1 user only**. For groups, broadcast a **custom message of type `"meeting"`** to the group; receivers handle it via `MessageListener.onCustomMessageReceived` and join the WebRTC session whose `sessionId = group GUID`.
|
|
4
4
|
|
|
5
|
-
By-design
|
|
5
|
+
By-design signaling semantic — same across all CometChat kits.
|
|
6
6
|
|
|
7
7
|
**Canonical docs:** https://www.cometchat.com/docs/calls/flutter/group-calls
|
|
8
8
|
|
|
9
|
-
V5 specifics: Flutter V5 uses `cometchat_chat_uikit ^5.2` + `
|
|
9
|
+
V5 specifics: Flutter V5 uses `cometchat_chat_uikit ^5.2` (GetX chat kit) + the **raw `cometchat_calls_sdk ^5.0.2`** (direct dependency) — you build a custom meeting/ongoing-call surface. The signaling semantic below is identical to Flutter V6.
|
|
10
10
|
|
|
11
11
|
---
|
|
12
12
|
|
|
@@ -15,15 +15,14 @@ V5 specifics: Flutter V5 uses `cometchat_chat_uikit ^5.2` + `cometchat_calls_uik
|
|
|
15
15
|
```
|
|
16
16
|
Caller (uidA, member of groupX) CometChat Receivers (members of groupX)
|
|
17
17
|
│ │ │
|
|
18
|
-
│
|
|
19
|
-
│
|
|
20
|
-
│ { callType, sessionId }) │ │
|
|
18
|
+
│ sendCustomMessage(GUID, GROUP, │ │
|
|
19
|
+
│ "meeting", { callType, sessionId }) │ │
|
|
21
20
|
├──────────────────────────────────────>│ │
|
|
22
21
|
│ │ onCustomMessageReceived │
|
|
23
22
|
│ ├─────────────────────────────>│
|
|
24
23
|
│ caller pushes OngoingCallScreen │ receiver taps Join │
|
|
25
|
-
│ with sessionID = groupGuid │ →
|
|
26
|
-
│ │ .
|
|
24
|
+
│ with sessionID = groupGuid │ → CometChatCalls │
|
|
25
|
+
│ │ .joinSession(...) │
|
|
27
26
|
├──────────────────────────────────────>│ <─────────────────────────── │
|
|
28
27
|
│ ───── WebRTC session active (sessionId = group GUID) ─────│
|
|
29
28
|
```
|
|
@@ -39,26 +38,13 @@ Caller (uidA, member of groupX) CometChat Receivers (membe
|
|
|
39
38
|
|
|
40
39
|
## Hard rules
|
|
41
40
|
|
|
42
|
-
1. **Group calls broadcast a custom message; they do NOT use the call listener.**
|
|
41
|
+
1. **Group calls broadcast a custom message; they do NOT use the call listener.** Add a `MessageListener`.
|
|
43
42
|
2. **Session ID = group GUID.** Persistent.
|
|
44
|
-
3. **`
|
|
45
|
-
4. **No `CometChat.endCall` for groups.** Use `
|
|
43
|
+
3. **`CometChatCalls.init()` must complete AFTER `CometChatUIKit.init()`** (CALLS_INIT_AFTER_CHAT_INIT rule from SKILL.md) — same as 1:1.
|
|
44
|
+
4. **No `CometChat.endCall` for groups.** Use `CallSession.getInstance()?.leaveSession()` only.
|
|
46
45
|
|
|
47
46
|
---
|
|
48
47
|
|
|
49
|
-
## Caller side — kit-based
|
|
50
|
-
|
|
51
|
-
```dart
|
|
52
|
-
import 'package:cometchat_calls_uikit/cometchat_calls_uikit.dart';
|
|
53
|
-
|
|
54
|
-
// Inside a chat surface (e.g. inside CometChatMessageHeader):
|
|
55
|
-
CometChatCallButtons(
|
|
56
|
-
group: group,
|
|
57
|
-
)
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
Tap → kit sends meeting `CustomMessage` + pushes outgoing-call screen → transitions to ongoing call with `sessionId = group.guid`.
|
|
61
|
-
|
|
62
48
|
## Caller side — custom UI
|
|
63
49
|
|
|
64
50
|
```dart
|
|
@@ -97,10 +83,6 @@ Future<void> startGroupCall(String groupGuid, String callType) async {
|
|
|
97
83
|
|
|
98
84
|
---
|
|
99
85
|
|
|
100
|
-
## Receiver side — kit-based
|
|
101
|
-
|
|
102
|
-
`CometChatMessageList(group: group)` auto-renders the meeting message as a "Join meeting" card. Tap → kit calls `generateToken` and pushes the ongoing-call screen with `sessionId = group.guid`.
|
|
103
|
-
|
|
104
86
|
## Receiver side — custom UI
|
|
105
87
|
|
|
106
88
|
```dart
|
|
@@ -138,6 +120,19 @@ void unregisterGroupMeetingListener() {
|
|
|
138
120
|
|
|
139
121
|
Wire register in `initState` / GetX controller `onInit`, unregister in `dispose` / `onClose`. Register AFTER `CometChatUIKit.login()` succeeds.
|
|
140
122
|
|
|
123
|
+
On Join tap, join the WebRTC session with the group GUID as the sessionId (5.x raw SDK):
|
|
124
|
+
|
|
125
|
+
```dart
|
|
126
|
+
CometChatCalls.joinSession( // cometchatcalls.dart:735
|
|
127
|
+
sessionId: groupGuid, // sessionId == group GUID
|
|
128
|
+
sessionSettings: (SessionSettingsBuilder()..setTitle('Meeting')).build(),
|
|
129
|
+
onSuccess: (Widget? widget) { /* render via SizedBox.expand */ },
|
|
130
|
+
onError: (CometChatCallsException e) { /* surface */ },
|
|
131
|
+
);
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
> **Legacy 4.x-kit alternative (incompatible with the 5.x calls SDK).** The old `cometchat_calls_uikit` path used `CometChatCallButtons(group: group)` for the caller, auto-rendered the meeting card in `CometChatMessageList(group: group)`, and joined via `CometChatUIKitCalls.startSession`. Those widgets are 4.x-bound and cannot run against `cometchat_calls_sdk ^5.0.2` — replicate with the custom-message + `joinSession` flow above.
|
|
135
|
+
|
|
141
136
|
---
|
|
142
137
|
|
|
143
138
|
## Edge cases
|
|
@@ -152,7 +147,7 @@ Meeting `CustomMessage.metadata.pushNotification = "meeting"` — delivered as r
|
|
|
152
147
|
|
|
153
148
|
### `navigatorKey` requirement (V5 too)
|
|
154
149
|
|
|
155
|
-
|
|
150
|
+
Set `MaterialApp.navigatorKey` to a plain `GlobalKey<NavigatorState>` so the meeting flow can navigate from anywhere — same requirement as 1:1 (rule 1.7 in SKILL.md). (Do NOT use `CallNavigationContext.navigatorKey` — that is a 4.x-kit symbol.)
|
|
156
151
|
|
|
157
152
|
---
|
|
158
153
|
|
|
@@ -168,12 +163,11 @@ If you use the kit's outgoing-call screen for groups, ensure `MaterialApp` has `
|
|
|
168
163
|
|
|
169
164
|
## Verification checklist
|
|
170
165
|
|
|
171
|
-
- [ ]
|
|
172
|
-
- [ ]
|
|
173
|
-
- [ ]
|
|
174
|
-
- [ ]
|
|
175
|
-
- [ ]
|
|
176
|
-
- [ ] On hangup: `CometChatUIKitCalls.endSession()` only (no `CometChat.endCall`)
|
|
166
|
+
- [ ] Caller: `CometChat.sendCustomMessage` called with `type: 'meeting'`, `category: MessageCategoryConstants.custom`, `customData: {callType, sessionId}`, `metadata: { pushNotification: 'meeting' }`
|
|
167
|
+
- [ ] Receiver: `CometChat.addMessageListener` registered with category+type filter, AFTER login
|
|
168
|
+
- [ ] Join action calls `CometChatCalls.joinSession(sessionId: groupGuid, ...)`
|
|
169
|
+
- [ ] `MaterialApp.navigatorKey` is a `GlobalKey<NavigatorState>`
|
|
170
|
+
- [ ] On hangup: `CallSession.getInstance()?.leaveSession()` only (no `CometChat.endCall`)
|
|
177
171
|
- [ ] Late-joining tested
|
|
178
172
|
- [ ] Push notifications fire for offline members
|
|
179
173
|
|
|
@@ -182,6 +176,6 @@ If you use the kit's outgoing-call screen for groups, ensure `MaterialApp` has `
|
|
|
182
176
|
## Pointers
|
|
183
177
|
|
|
184
178
|
- `ringing-integration.md` — 1:1 user calls (different signaling channel)
|
|
185
|
-
- `cometchat-flutter-v5-calls/SKILL.md` — V5 hard rules (
|
|
179
|
+
- `cometchat-flutter-v5-calls/SKILL.md` — V5 hard rules (raw `cometchat_calls_sdk ^5.0.2`, Jetifier, etc.)
|
|
186
180
|
- Canonical docs: https://www.cometchat.com/docs/calls/flutter/group-calls
|
|
187
181
|
- Cross-platform reference (semantic ground-truth): `cometchat-react-calls/references/group-calls.md`
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
# Idle timeout on Flutter V5 (GetX-based)
|
|
1
|
+
# Idle timeout on Flutter V5 (GetX-based, 5.x Calls SDK)
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Flutter-specific: `SessionSettingsBuilder` setter API + `showDialog` / overlay for the prompt.
|
|
4
4
|
|
|
5
5
|
**Canonical docs:** https://www.cometchat.com/docs/calls/flutter/idle-timeout
|
|
6
6
|
**Read first:** `cometchat-react-calls/references/idle-timeout.md` — settings + archetype timeouts.
|
|
@@ -9,25 +9,26 @@ Same SDK API. Flutter-specific: `CallSettingsBuilder` setter API + `showDialog`
|
|
|
9
9
|
|
|
10
10
|
## SDK API
|
|
11
11
|
|
|
12
|
+
In 5.x the idle period is a single value (in **seconds**) on `SessionSettingsBuilder` — `setIdleTimeoutPeriod(int timeoutSeconds)` (`cometchat_calls_sdk-5.0.2` `src/builder/session_settings.dart:185`). There is no separate before/after-prompt split.
|
|
13
|
+
|
|
12
14
|
```dart
|
|
13
|
-
import 'package:
|
|
15
|
+
import 'package:cometchat_calls_sdk/cometchat_calls_sdk.dart';
|
|
14
16
|
|
|
15
|
-
final settings =
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
final builtSettings = settings.build();
|
|
17
|
+
final settings = (SessionSettingsBuilder()
|
|
18
|
+
..setIdleTimeoutPeriod(180)) // seconds — session_settings.dart:185
|
|
19
|
+
.build();
|
|
19
20
|
```
|
|
20
21
|
|
|
21
|
-
Listener — implement on the GetX controller (cf. `references/raise-hand.md`):
|
|
22
|
+
Listener — implement `SessionStatusListeners` on the GetX controller (cf. `references/raise-hand.md`); `onSessionTimedOut` is `src/listener/session_status_listeners.dart:22`:
|
|
22
23
|
|
|
23
24
|
```dart
|
|
24
|
-
class CallController extends GetxController implements
|
|
25
|
+
class CallController extends GetxController implements SessionStatusListeners {
|
|
25
26
|
@override
|
|
26
27
|
void onSessionTimedOut() {
|
|
27
28
|
Get.snackbar('Call ended', 'You were inactive for too long');
|
|
28
29
|
Get.until((route) => route.isFirst); // pop to home
|
|
29
30
|
}
|
|
30
|
-
// ... other handlers
|
|
31
|
+
// ... other SessionStatusListeners handlers (no-ops or pass-through)
|
|
31
32
|
}
|
|
32
33
|
```
|
|
33
34
|
|
|
@@ -57,8 +58,9 @@ Future<void> showIdleTimeoutPrompt(BuildContext context) async {
|
|
|
57
58
|
);
|
|
58
59
|
|
|
59
60
|
if (result == 'end') {
|
|
60
|
-
//
|
|
61
|
-
|
|
61
|
+
// 5.x teardown: the CallSession INSTANCE leaveSession() (call_session.dart:272).
|
|
62
|
+
// The static CometChatCalls.endSession exists but is @Deprecated.
|
|
63
|
+
await CallSession.getInstance()?.leaveSession();
|
|
62
64
|
} else {
|
|
63
65
|
// 'stay' or null — reset custom timer
|
|
64
66
|
}
|
|
@@ -81,7 +83,7 @@ Web sister rules apply, plus Flutter-specific:
|
|
|
81
83
|
|
|
82
84
|
## Verification checklist
|
|
83
85
|
|
|
84
|
-
- [ ]
|
|
86
|
+
- [ ] `SessionSettingsBuilder()..setIdleTimeoutPeriod(seconds)` (single value, in seconds)
|
|
85
87
|
- [ ] `onSessionTimedOut` snackbar + nav cleanup
|
|
86
88
|
- [ ] Dialog `barrierDismissible: false`
|
|
87
89
|
- [ ] `mounted` check before showing prompt
|
|
@@ -10,20 +10,23 @@ Same SDK shape. Flutter-specific: `showModalBottomSheet` with `isScrollControlle
|
|
|
10
10
|
## SDK API
|
|
11
11
|
|
|
12
12
|
```dart
|
|
13
|
-
import 'package:
|
|
13
|
+
import 'package:cometchat_calls_sdk/cometchat_calls_sdk.dart';
|
|
14
14
|
import 'package:cometchat_chat_uikit/cometchat_chat_uikit.dart';
|
|
15
15
|
|
|
16
|
-
// Wire chat button visibility via the
|
|
17
|
-
final settings =
|
|
18
|
-
|
|
16
|
+
// Wire chat button visibility via the (non-deprecated) SessionSettingsBuilder
|
|
17
|
+
final settings = (SessionSettingsBuilder()
|
|
18
|
+
..hideChatButton(false)) // session_settings.dart:299
|
|
19
|
+
.build();
|
|
19
20
|
|
|
20
|
-
//
|
|
21
|
+
// The chat-button tap arrives on ButtonClickListeners (src/listener/button_click_listeners.dart:34),
|
|
22
|
+
// registered via CallSession.getInstance()?.addButtonClickListener(...) (call_session.dart:90):
|
|
21
23
|
@override
|
|
22
24
|
void onChatButtonClicked() {
|
|
23
25
|
Get.find<CallController>().openChat();
|
|
24
26
|
}
|
|
25
27
|
|
|
26
|
-
|
|
28
|
+
// Unread badge — INSTANCE method on the session singleton (call_session.dart:489):
|
|
29
|
+
CallSession.getInstance()?.setChatButtonUnreadCount(5);
|
|
27
30
|
```
|
|
28
31
|
|
|
29
32
|
---
|
|
@@ -68,7 +71,7 @@ class CallController extends GetxController {
|
|
|
68
71
|
enableDrag: true,
|
|
69
72
|
);
|
|
70
73
|
unread.value = 0;
|
|
71
|
-
|
|
74
|
+
CallSession.getInstance()?.setChatButtonUnreadCount(0);
|
|
72
75
|
}
|
|
73
76
|
}
|
|
74
77
|
|
|
@@ -116,8 +119,8 @@ Web sister rules apply, plus Flutter-specific:
|
|
|
116
119
|
|
|
117
120
|
## Verification checklist
|
|
118
121
|
|
|
119
|
-
- [ ] `hideChatButton
|
|
120
|
-
- [ ] `onChatButtonClicked` opens bottom sheet
|
|
122
|
+
- [ ] `SessionSettingsBuilder()..hideChatButton(false)`
|
|
123
|
+
- [ ] `onChatButtonClicked` (ButtonClickListeners, registered on `CallSession.getInstance()`) opens bottom sheet
|
|
121
124
|
- [ ] `Get.bottomSheet` uses `isScrollControlled: true` + transparent barrier
|
|
122
125
|
- [ ] `MediaQuery.viewInsets.bottom` padding for keyboard
|
|
123
126
|
- [ ] Group resolved before opening sheet
|
|
@@ -1,19 +1,24 @@
|
|
|
1
|
-
# CometChat Calls Flutter SDK v4 → v5 migration
|
|
1
|
+
# CometChat Calls Flutter SDK v4 → v5 migration (raw SDK)
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Moving the **Calls SDK** from 4.x to **`cometchat_calls_sdk ^5.0.2`** on the Flutter V5 (GetX) chat UI Kit — per the product decision that all families use the V5 calls SDK.
|
|
4
4
|
|
|
5
|
-
**Important:** This migrates the **Calls SDK** (
|
|
5
|
+
**Important:** This migrates the **Calls SDK** (4.x → 5.x), not the chat UI Kit cohort (V5 GetX → V6 Bloc, which is `cometchat-flutter-v6-migration`). The chat UI Kit stays on V5 GetX; only the calls layer changes.
|
|
6
6
|
|
|
7
|
+
> **Why you can't just bump `cometchat_calls_uikit`.** The latest `cometchat_calls_uikit` (5.0.16) still transitively pins `cometchat_calls_sdk ^4.2.2`, and its prebuilt call widgets (`CometChatCallButtons`/`CometChatIncomingCall`/`CometChatOutgoingCall`/`CometChatOngoingCall`) are compiled against the 4.x API. To run the 5.x calls SDK you **drop `cometchat_calls_uikit`** and integrate the **raw `cometchat_calls_sdk ^5.0.2`** directly with a custom call surface.
|
|
8
|
+
|
|
9
|
+
**Substrate of record:** `~/.pub-cache/hosted/pub.dev/cometchat_calls_sdk-5.0.2/lib/`
|
|
7
10
|
**Canonical docs:** https://www.cometchat.com/docs/calls/flutter/migration-guide-v5
|
|
8
11
|
|
|
9
12
|
---
|
|
10
13
|
|
|
11
|
-
## Step 1 —
|
|
14
|
+
## Step 1 — Swap the dependency
|
|
12
15
|
|
|
13
|
-
```
|
|
14
|
-
# pubspec.yaml
|
|
15
|
-
dependencies:
|
|
16
|
-
|
|
16
|
+
```diff
|
|
17
|
+
# pubspec.yaml
|
|
18
|
+
dependencies:
|
|
19
|
+
cometchat_chat_uikit: ^5.2.14 # chat UI Kit stays on V5 (GetX)
|
|
20
|
+
- cometchat_calls_uikit: ^5.0.15 # 4.x-bound — remove
|
|
21
|
+
+ cometchat_calls_sdk: ^5.0.2 # raw 5.x calls SDK (direct dependency)
|
|
17
22
|
```
|
|
18
23
|
|
|
19
24
|
```bash
|
|
@@ -25,110 +30,152 @@ cd ios && pod install # if you have iOS
|
|
|
25
30
|
|
|
26
31
|
## Step 2 — Migrate init
|
|
27
32
|
|
|
33
|
+
`init` takes a `CallAppSettings` built via `CallAppSettingBuilder` (`src/builder/call_app_settings_request.dart:36`) and runs with `onSuccess`/`onError` callbacks (`cometchatcalls.dart:172`).
|
|
34
|
+
|
|
28
35
|
```diff
|
|
29
36
|
- final callSettings = CallAppSettingsBuilder()
|
|
30
37
|
- ..setAppId('APP_ID')
|
|
31
38
|
- ..setRegion('REGION');
|
|
32
39
|
- await CometChatCalls.init(callSettings);
|
|
33
40
|
|
|
34
|
-
+ final
|
|
35
|
-
+
|
|
41
|
+
+ final callAppSettings = (CallAppSettingBuilder()
|
|
42
|
+
+ ..appId = 'APP_ID'
|
|
43
|
+
+ ..region = 'REGION')
|
|
44
|
+
+ .build();
|
|
45
|
+
+ CometChatCalls.init(
|
|
46
|
+
+ callAppSettings,
|
|
47
|
+
+ onSuccess: (String s) {},
|
|
48
|
+
+ onError: (CometChatCallsException e) {},
|
|
49
|
+
+ );
|
|
36
50
|
```
|
|
37
51
|
|
|
38
52
|
---
|
|
39
53
|
|
|
40
|
-
## Step 3 — Add Calls SDK login
|
|
54
|
+
## Step 3 — Add the 5.x Calls SDK login
|
|
55
|
+
|
|
56
|
+
4.x had no calls login (it took a per-call auth token). 5.x has its own login that caches the token internally (`cometchatcalls.dart:316`).
|
|
41
57
|
|
|
42
58
|
```dart
|
|
43
|
-
// After CometChat.login completes
|
|
44
|
-
final
|
|
45
|
-
|
|
46
|
-
|
|
59
|
+
// After CometChat.login completes:
|
|
60
|
+
final authToken = await CometChat.getUserAuthToken(); // static; no User.getAuthToken() method
|
|
61
|
+
if (authToken != null) {
|
|
62
|
+
CometChatCalls.loginWithAuthToken(
|
|
63
|
+
authToken: authToken,
|
|
64
|
+
onSuccess: (user) {},
|
|
65
|
+
onError: (CometChatCallsException e) {},
|
|
66
|
+
);
|
|
67
|
+
}
|
|
47
68
|
```
|
|
48
69
|
|
|
49
70
|
---
|
|
50
71
|
|
|
51
72
|
## Step 4 — Migrate session settings
|
|
52
73
|
|
|
74
|
+
`SessionSettingsBuilder` replaces `CallSettingsBuilder` (the latter is `@Deprecated`, `src/builder/call_settings.dart:209`). Methods are chainable / cascade setters (`src/builder/session_settings.dart`).
|
|
75
|
+
|
|
53
76
|
```diff
|
|
54
|
-
- final callSettings = CallSettingsBuilder()
|
|
77
|
+
- final callSettings = (CallSettingsBuilder()
|
|
55
78
|
- ..setSessionType(SessionType.video)
|
|
56
79
|
- ..startWithAudioMuted(false)
|
|
57
|
-
- ..showRecordingButton(true)
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
+
|
|
61
|
-
+
|
|
62
|
-
+
|
|
63
|
-
+
|
|
64
|
-
+
|
|
80
|
+
- ..showRecordingButton(true))
|
|
81
|
+
- .build();
|
|
82
|
+
|
|
83
|
+
+ final sessionSettings = (SessionSettingsBuilder()
|
|
84
|
+
+ ..setType(SessionType.video) // session_settings.dart:197
|
|
85
|
+
+ ..startAudioMuted(false) // :173
|
|
86
|
+
+ ..startVideoPaused(false) // :167
|
|
87
|
+
+ ..setLayout(LayoutType.tile) // :179
|
|
88
|
+
+ ..hideRecordingButton(false)) // :227 (INVERTED sense vs show*)
|
|
89
|
+
+ .build();
|
|
65
90
|
```
|
|
66
91
|
|
|
67
92
|
---
|
|
68
93
|
|
|
69
|
-
## Step 5 — Migrate listener to
|
|
94
|
+
## Step 5 — Migrate the listener to the 5 split listeners
|
|
95
|
+
|
|
96
|
+
The single `CometChatCallsEventsListener` is `@Deprecated` (`src/listener/cometchat_calls_events_listener.dart:16`). 5.x splits events across `SessionStatusListeners`, `ParticipantEventListeners`, `MediaEventListeners`, `ButtonClickListeners`, `LayoutListeners` — registered on `CallSession.getInstance()` (after `joinSession.onSuccess`).
|
|
70
97
|
|
|
71
98
|
```diff
|
|
72
99
|
- class MyEvents implements CometChatCallsEventsListener {
|
|
73
100
|
- @override
|
|
74
101
|
- void onCallEnded() { /* ... */ }
|
|
75
102
|
- @override
|
|
76
|
-
- void onUserJoined(
|
|
103
|
+
- void onUserJoined(RTCUser user) { /* ... */ }
|
|
77
104
|
- // ...
|
|
78
105
|
- }
|
|
79
|
-
- CometChatCalls.
|
|
80
|
-
|
|
81
|
-
+
|
|
82
|
-
+
|
|
83
|
-
+
|
|
106
|
+
- CometChatCalls.addCallsEventListeners('id', MyEvents());
|
|
107
|
+
|
|
108
|
+
+ class MyEvents implements SessionStatusListeners, ParticipantEventListeners {
|
|
109
|
+
+ @override
|
|
110
|
+
+ void onSessionLeft() { /* was onCallEnded */ } // session_status_listeners.dart:10
|
|
111
|
+
+ @override
|
|
112
|
+
+ void onParticipantJoined(Participant p) { /* was onUserJoined */ } // participant_event_listeners.dart:12
|
|
113
|
+
+ @override
|
|
114
|
+
+ void onParticipantLeft(Participant p) { /* was onUserLeft */ } // :15
|
|
115
|
+
+ // ... remaining interface methods (no-ops or pass-through)
|
|
116
|
+
+ }
|
|
117
|
+
+
|
|
118
|
+
+ // inside joinSession.onSuccess:
|
|
119
|
+
+ final events = MyEvents();
|
|
120
|
+
+ CallSession.getInstance()?.addSessionStatusListener(events); // call_session.dart:66
|
|
121
|
+
+ CallSession.getInstance()?.addParticipantEventListener(events); // :74
|
|
84
122
|
+
|
|
85
123
|
+ @override
|
|
86
124
|
+ void dispose() {
|
|
87
|
-
+
|
|
88
|
-
+
|
|
89
|
-
+ unsub3.call();
|
|
125
|
+
+ CallSession.getInstance()?.removeSessionStatusListener(events);
|
|
126
|
+
+ CallSession.getInstance()?.removeParticipantEventListener(events);
|
|
90
127
|
+ super.dispose();
|
|
91
128
|
+ }
|
|
92
129
|
```
|
|
93
130
|
|
|
94
131
|
---
|
|
95
132
|
|
|
96
|
-
## Step 6 —
|
|
133
|
+
## Step 6 — Start/join + control method renames + receiver shift
|
|
97
134
|
|
|
98
|
-
|
|
135
|
+
The two-step `generateToken` + `startSession` collapses into a single `joinSession` (`cometchatcalls.dart:735`). In-call controls move from static methods on `CometChatCalls` to **instance methods on `CallSession`** (the singleton via `CallSession.getInstance()`).
|
|
99
136
|
|
|
100
137
|
```diff
|
|
101
|
-
//
|
|
102
|
-
- CometChatCalls.
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
+
|
|
108
|
-
|
|
109
|
-
+
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
138
|
+
// start the session
|
|
139
|
+
- CometChatCalls.generateToken(sessionId, authToken, onSuccess: (t) {
|
|
140
|
+
- CometChatCalls.startSession(t.token!, callSettings, onSuccess: (w) {}, onError: (e) {});
|
|
141
|
+
- }, onError: (e) {});
|
|
142
|
+
+ CometChatCalls.joinSession(
|
|
143
|
+
+ sessionId: sessionId, // SDK mints the call token internally
|
|
144
|
+
+ sessionSettings: sessionSettings,
|
|
145
|
+
+ onSuccess: (Widget? w) {},
|
|
146
|
+
+ onError: (CometChatCallsException e) {},
|
|
147
|
+
+ );
|
|
148
|
+
|
|
149
|
+
// teardown — receiver changes from CometChatCalls (static) to CallSession (singleton)
|
|
150
|
+
- CometChatCalls.endSession(onSuccess: (_) {}, onError: (e) {})
|
|
151
|
+
+ await CallSession.getInstance()?.leaveSession() // call_session.dart:272
|
|
152
|
+
|
|
153
|
+
// media controls — same receiver shift, now no-arg
|
|
154
|
+
- CometChatCalls.muteAudio()
|
|
155
|
+
+ CallSession.getInstance()?.muteAudio() // call_session.dart:131
|
|
156
|
+
+ CallSession.getInstance()?.unMuteAudio() // :145
|
|
157
|
+
- CometChatCalls.pauseVideo() / resumeVideo()
|
|
158
|
+
+ CallSession.getInstance()?.pauseVideo() / resumeVideo() // :168 / :182
|
|
159
|
+
|
|
160
|
+
// layout — also moves to the instance (NOT static in 5.x)
|
|
161
|
+
- CometChatCalls.setLayout(CallLayout.spotlight)
|
|
162
|
+
+ CallSession.getInstance()?.setLayout(LayoutType.spotlight) // :394
|
|
117
163
|
```
|
|
118
164
|
|
|
119
|
-
**`CallSession.getInstance()` returns `CallSession?` (nullable)** — null when there's no active session. Use `?.` to safely chain
|
|
165
|
+
**`CallSession.getInstance()` returns `CallSession?` (nullable)** — null when there's no active session. Use `?.` to safely chain.
|
|
120
166
|
|
|
121
167
|
---
|
|
122
168
|
|
|
123
169
|
## Step 7 — GetX state preservation
|
|
124
170
|
|
|
125
|
-
If you
|
|
171
|
+
If you use GetX controllers around the calls (per `cometchat-flutter-v5-calls/SKILL.md`), the state shape doesn't change — only the underlying SDK calls. Sample diff in a GetX controller:
|
|
126
172
|
|
|
127
173
|
```diff
|
|
128
174
|
class CallController extends GetxController {
|
|
129
175
|
void startCall(String sessionId) async {
|
|
130
|
-
- await CometChatCalls.startSession(
|
|
131
|
-
+
|
|
176
|
+
- await CometChatCalls.startSession(callToken, settings: callSettings);
|
|
177
|
+
+ CometChatCalls.joinSession(sessionId: sessionId, sessionSettings: sessionSettings,
|
|
178
|
+
+ onSuccess: (w) {}, onError: (e) {});
|
|
132
179
|
}
|
|
133
180
|
|
|
134
181
|
void endCall() async {
|
|
@@ -142,19 +189,22 @@ If you're using GetX controllers around the calls (per `cometchat-flutter-v5-cal
|
|
|
142
189
|
|
|
143
190
|
## Verification checklist
|
|
144
191
|
|
|
145
|
-
- [ ] `pubspec.yaml` lists `
|
|
192
|
+
- [ ] `pubspec.yaml` lists `cometchat_calls_sdk: ^5.0.2` and NO `cometchat_calls_uikit`
|
|
146
193
|
- [ ] `flutter pub get` + `pod install` succeed
|
|
147
|
-
- [ ] `CometChatCalls.
|
|
148
|
-
- [ ] CallSettingsBuilder replaced with `
|
|
149
|
-
- [ ] CometChatCallsEventsListener replaced with `
|
|
150
|
-
- [ ]
|
|
151
|
-
- [ ]
|
|
152
|
-
- [ ]
|
|
194
|
+
- [ ] `CometChatCalls.loginWithAuthToken(authToken:)` called after `CometChat.login`
|
|
195
|
+
- [ ] `CallSettingsBuilder` replaced with `SessionSettingsBuilder`
|
|
196
|
+
- [ ] Single `CometChatCallsEventsListener` replaced with the 5 split listeners on `CallSession.getInstance()`
|
|
197
|
+
- [ ] `generateToken` + `startSession` collapsed into `joinSession(sessionId:, sessionSettings:, ...)`
|
|
198
|
+
- [ ] In-call controls + `leaveSession` moved to `CallSession.getInstance()?.X()`
|
|
199
|
+
- [ ] Prebuilt `cometchat_calls_uikit` call widgets removed; custom call surface in place
|
|
200
|
+
- [ ] Real-device smoke: iOS + Android, incoming/outgoing/mute/layout/leave
|
|
153
201
|
|
|
154
202
|
---
|
|
155
203
|
|
|
156
204
|
## Pointers
|
|
157
205
|
|
|
158
206
|
- Canonical migration: https://www.cometchat.com/docs/calls/flutter/migration-guide-v5
|
|
159
|
-
- `cometchat-flutter-v5-calls/SKILL.md` — Flutter calls architecture (GetX patterns)
|
|
160
|
-
- `cometchat-flutter-
|
|
207
|
+
- `cometchat-flutter-v5-calls/SKILL.md` — Flutter calls architecture on the 5.x SDK (GetX patterns)
|
|
208
|
+
- `cometchat-flutter-v5-calls/references/call-session.md` — canonical 5.x SDK API surface
|
|
209
|
+
- `cometchat-flutter-v6-calls/` — V6 cohort (Bloc) on the SAME 5.0.2 calls SDK
|
|
210
|
+
```
|