@cometchat/skills 3.0.0 → 4.0.0

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.
Files changed (101) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +44 -17
  3. package/bin/install.js +389 -43
  4. package/package.json +19 -9
  5. package/skills/cometchat/SKILL.md +1066 -265
  6. package/skills/cometchat-android-v5/SKILL.md +120 -0
  7. package/skills/cometchat-android-v5-components/SKILL.md +430 -0
  8. package/skills/cometchat-android-v5-core/SKILL.md +468 -0
  9. package/skills/cometchat-android-v5-customization/SKILL.md +305 -0
  10. package/skills/cometchat-android-v5-extensions/SKILL.md +124 -0
  11. package/skills/cometchat-android-v5-features/SKILL.md +130 -0
  12. package/skills/cometchat-android-v5-placement/SKILL.md +276 -0
  13. package/skills/cometchat-android-v5-production/SKILL.md +94 -0
  14. package/skills/cometchat-android-v5-push/SKILL.md +620 -0
  15. package/skills/cometchat-android-v5-testing/SKILL.md +187 -0
  16. package/skills/cometchat-android-v5-theming/SKILL.md +166 -0
  17. package/skills/cometchat-android-v5-troubleshooting/SKILL.md +73 -0
  18. package/skills/cometchat-android-v6/SKILL.md +107 -0
  19. package/skills/cometchat-android-v6-builder-settings/SKILL.md +145 -0
  20. package/skills/cometchat-android-v6-compose-components/SKILL.md +202 -0
  21. package/skills/cometchat-android-v6-compose-customization/SKILL.md +280 -0
  22. package/skills/cometchat-android-v6-compose-placement/SKILL.md +213 -0
  23. package/skills/cometchat-android-v6-compose-theming/SKILL.md +224 -0
  24. package/skills/cometchat-android-v6-core/SKILL.md +354 -0
  25. package/skills/cometchat-android-v6-events/SKILL.md +212 -0
  26. package/skills/cometchat-android-v6-extensions/SKILL.md +191 -0
  27. package/skills/cometchat-android-v6-features/SKILL.md +130 -0
  28. package/skills/cometchat-android-v6-kotlin-components/SKILL.md +197 -0
  29. package/skills/cometchat-android-v6-kotlin-customization/SKILL.md +268 -0
  30. package/skills/cometchat-android-v6-kotlin-placement/SKILL.md +248 -0
  31. package/skills/cometchat-android-v6-kotlin-theming/SKILL.md +202 -0
  32. package/skills/cometchat-android-v6-production/SKILL.md +187 -0
  33. package/skills/cometchat-android-v6-push/SKILL.md +274 -0
  34. package/skills/cometchat-android-v6-testing/SKILL.md +279 -0
  35. package/skills/cometchat-android-v6-troubleshooting/SKILL.md +249 -0
  36. package/skills/cometchat-angular-components/SKILL.md +706 -0
  37. package/skills/cometchat-angular-core/SKILL.md +444 -0
  38. package/skills/cometchat-angular-customization/SKILL.md +424 -0
  39. package/skills/cometchat-angular-features/SKILL.md +447 -0
  40. package/skills/cometchat-angular-patterns/SKILL.md +447 -0
  41. package/skills/cometchat-angular-placement/SKILL.md +685 -0
  42. package/skills/cometchat-angular-production/SKILL.md +415 -0
  43. package/skills/cometchat-angular-theming/SKILL.md +365 -0
  44. package/skills/cometchat-angular-troubleshooting/SKILL.md +329 -0
  45. package/skills/cometchat-astro-patterns/SKILL.md +3 -3
  46. package/skills/cometchat-components/SKILL.md +11 -0
  47. package/skills/cometchat-core/SKILL.md +11 -6
  48. package/skills/cometchat-customization/references/component-catalog.md +1 -1
  49. package/skills/cometchat-features/SKILL.md +176 -108
  50. package/skills/cometchat-flutter-v5/SKILL.md +167 -0
  51. package/skills/cometchat-flutter-v5-calls/SKILL.md +192 -0
  52. package/skills/cometchat-flutter-v5-conversations/SKILL.md +117 -0
  53. package/skills/cometchat-flutter-v5-core/SKILL.md +221 -0
  54. package/skills/cometchat-flutter-v5-customization/SKILL.md +227 -0
  55. package/skills/cometchat-flutter-v5-events/SKILL.md +155 -0
  56. package/skills/cometchat-flutter-v5-messages/SKILL.md +258 -0
  57. package/skills/cometchat-flutter-v5-production/SKILL.md +207 -0
  58. package/skills/cometchat-flutter-v5-push/SKILL.md +284 -0
  59. package/skills/cometchat-flutter-v5-theming/SKILL.md +160 -0
  60. package/skills/cometchat-flutter-v5-troubleshooting/SKILL.md +129 -0
  61. package/skills/cometchat-flutter-v5-users-groups/SKILL.md +151 -0
  62. package/skills/cometchat-flutter-v6/SKILL.md +445 -0
  63. package/skills/cometchat-flutter-v6-calls/SKILL.md +333 -0
  64. package/skills/cometchat-flutter-v6-components/SKILL.md +365 -0
  65. package/skills/cometchat-flutter-v6-conversations/SKILL.md +210 -0
  66. package/skills/cometchat-flutter-v6-core/SKILL.md +305 -0
  67. package/skills/cometchat-flutter-v6-customization/SKILL.md +666 -0
  68. package/skills/cometchat-flutter-v6-events/SKILL.md +216 -0
  69. package/skills/cometchat-flutter-v6-features/SKILL.md +406 -0
  70. package/skills/cometchat-flutter-v6-messages/SKILL.md +333 -0
  71. package/skills/cometchat-flutter-v6-migration/SKILL.md +381 -0
  72. package/skills/cometchat-flutter-v6-placement/SKILL.md +398 -0
  73. package/skills/cometchat-flutter-v6-production/SKILL.md +632 -0
  74. package/skills/cometchat-flutter-v6-theming/SKILL.md +260 -0
  75. package/skills/cometchat-flutter-v6-troubleshooting/SKILL.md +726 -0
  76. package/skills/cometchat-flutter-v6-users-groups/SKILL.md +216 -0
  77. package/skills/cometchat-ios/SKILL.md +323 -0
  78. package/skills/cometchat-ios-components/SKILL.md +651 -0
  79. package/skills/cometchat-ios-core/SKILL.md +822 -0
  80. package/skills/cometchat-ios-customization/SKILL.md +825 -0
  81. package/skills/cometchat-ios-features/SKILL.md +725 -0
  82. package/skills/cometchat-ios-placement/SKILL.md +750 -0
  83. package/skills/cometchat-ios-production/SKILL.md +730 -0
  84. package/skills/cometchat-ios-push/SKILL.md +582 -0
  85. package/skills/cometchat-ios-theming/SKILL.md +631 -0
  86. package/skills/cometchat-ios-troubleshooting/SKILL.md +983 -0
  87. package/skills/cometchat-native-bare-patterns/SKILL.md +470 -0
  88. package/skills/cometchat-native-components/SKILL.md +594 -0
  89. package/skills/cometchat-native-core/SKILL.md +407 -0
  90. package/skills/cometchat-native-customization/SKILL.md +594 -0
  91. package/skills/cometchat-native-expo-patterns/SKILL.md +485 -0
  92. package/skills/cometchat-native-features/SKILL.md +608 -0
  93. package/skills/cometchat-native-placement/SKILL.md +500 -0
  94. package/skills/cometchat-native-production/SKILL.md +694 -0
  95. package/skills/cometchat-native-push/SKILL.md +593 -0
  96. package/skills/cometchat-native-testing/SKILL.md +583 -0
  97. package/skills/cometchat-native-theming/SKILL.md +656 -0
  98. package/skills/cometchat-native-troubleshooting/SKILL.md +433 -0
  99. package/skills/cometchat-nextjs-patterns/SKILL.md +5 -5
  100. package/skills/cometchat-production/SKILL.md +60 -0
  101. package/skills/cometchat-react-router-patterns/SKILL.md +23 -21
@@ -0,0 +1,381 @@
1
+ ---
2
+ name: cometchat-flutter-v6-migration
3
+ description: >
4
+ Use when migrating a CometChat Flutter app from UIKit v5 (cometchat_calls_uikit + GetX)
5
+ to UIKit v6 (cometchat_chat_uikit unified package, no GetX). Covers import changes,
6
+ dependency cleanup, GetX removal, init/login pattern changes, navigation rewrites,
7
+ screen structure flattening, notification service updates, and BuilderSettings removal.
8
+ Also use when seeing imports from cometchat_calls_uikit, get/get.dart, or v5-era patterns
9
+ like GetBuilder, Get.put, Get.find, PageManager, BuilderSettings, or CometChatCallingExtension.
10
+ license: "MIT"
11
+ compatibility: "cometchat_chat_uikit 6.0.0-beta2"
12
+ allowed-tools: "executeBash, readFile, readCode, fileSearch, listDirectory, grepSearch"
13
+ metadata:
14
+ author: "CometChat"
15
+ version: "3.0.0"
16
+ tags: "cometchat flutter migration v5 v6 getx removal upgrade consumer"
17
+ ---
18
+
19
+ # CometChat Flutter — v5 to v6 Migration
20
+
21
+ Complete guide for migrating a consumer app from UIKit v5 to v6.
22
+
23
+ ## What Changed
24
+
25
+ | Area | v5 | v6 |
26
+ |------|-----|-----|
27
+ | Packages | `cometchat_chat_uikit` + `cometchat_calls_uikit` (separate) | `cometchat_chat_uikit` only (calls bundled) |
28
+ | State | GetX (`Get.put`, `GetBuilder`, `Obx`, `.obs`, `RxBool`) | Plain `StatefulWidget` + `setState()` |
29
+ | Navigation | `PageManager` (GetxController singleton) | Direct `Navigator.push` |
30
+ | Init | `InitializeCometChat.init()` + `CometChatCallingExtension()` + `extensions` + `aiFeature` | Inline `CometChatUIKit.init()` + `enableCalls: true` + `CallingConfiguration()` |
31
+ | Calls SDK init | `CometChatCallingExtension()` in extensions list | `CallEventService.instance.init()` after login |
32
+ | Screens | Separate controller + widget files per screen | Single file, state in StatefulWidget |
33
+ | Dashboard | `MyHomePage`/`MyPageView` with GetX `PageManager` | `HomeScreen` with `IndexedStack` |
34
+ | Messages | `MessagesSample` + `CometChatMessagesController` | `MessagesScreen` with listener mixins |
35
+ | Builder system | `BuilderSettings`, `BuilderColor`, `BuilderTypography` | Removed — toggle features per-widget (e.g. `disableReactions`, `hideReplyInThreadOption` on `CometChatMessageList`) or via the relevant component's constructor params. There is no global `ComponentToggles` class. |
36
+ | Notifications | `VoipNotificationHandler`, `APNSService` | `VoipCallHandler`, `ApnsService` |
37
+ | Extra deps | `get`, `google_sign_in`, `firebase_auth`, `bugsee_flutter`, `shared_preferences`, `toast`, `mobile_scanner`, `app_badge_plus` | None of these |
38
+ | Localization | `cc.Translations.delegate` + `GlobalMaterialLocalizations` in MaterialApp | Handled by UIKit internally |
39
+ | Call screen | `callMain()` entry point + `CallApp` + `CallScreen` widget | `CometChatOngoingCall` widget for the in-call UI + `CometChatDisplayIncomingCallOverlay` for incoming-call presentation. No separate Dart entry point. |
40
+ | Android minSdk | 24 | 26 (required by `cometchat_calls_sdk`) |
41
+
42
+ ## Step 1: pubspec.yaml
43
+
44
+ ```yaml
45
+ # ❌ v5
46
+ dependencies:
47
+ cometchat_chat_uikit:
48
+ path: ../chat_uikit
49
+ cometchat_calls_uikit:
50
+ path: ../calls_uikit
51
+ get: ^4.6.5
52
+ google_sign_in: ^6.2.2
53
+ firebase_auth: ^5.3.4
54
+ bugsee_flutter: ^8.0.0
55
+ permission_handler: ^11.3.1
56
+ shared_preferences: ^2.2.1
57
+ toast: ^0.3.0
58
+ mobile_scanner: ^7.1.2
59
+ app_badge_plus: ^1.2.6
60
+
61
+ # ✅ v6
62
+ dependencies:
63
+ cometchat_chat_uikit:
64
+ hosted: https://dart.cloudsmith.io/cometchat/cometchat/
65
+ version: 6.0.0-beta2
66
+ firebase_core: ^3.9.0
67
+ firebase_crashlytics: ^4.1.3
68
+ firebase_messaging: ^15.1.6
69
+ flutter_local_notifications: ^18.0.0
70
+ flutter_callkit_incoming: ^2.5.0
71
+ http: ^1.2.0
72
+ intl: ^0.20.2
73
+ ```
74
+
75
+ ## Step 2: Fix All Imports
76
+
77
+ | v5 Import | v6 Import |
78
+ |-----------|-----------|
79
+ | `package:cometchat_calls_uikit/cometchat_calls_uikit.dart` | `package:cometchat_chat_uikit/cometchat_calls_uikit.dart` |
80
+ | `package:get/get.dart` | Remove entirely |
81
+ | `builder/builder_settings.dart` | Remove — toggle features per-widget instead (no global toggle class in v6) |
82
+ | `builder/builder_settings_helper.dart` | Remove |
83
+ | `utils/page_manager.dart` | Remove — use `Navigator.push` |
84
+ | `utils/initialize_cometchat.dart` | Remove — inline init |
85
+ | `utils/bool_singleton.dart` | Remove |
86
+ | `utils/text_constants.dart` | Remove |
87
+ | `prefs/shared_preferences.dart` | Remove |
88
+
89
+ ## Step 3: Rewrite Init
90
+
91
+ ```dart
92
+ // ❌ v5 — helper class with CometChatCallingExtension + extensions + aiFeature
93
+ class InitializeCometChat {
94
+ static Future<bool> init() async {
95
+ final builder = UIKitSettingsBuilder()
96
+ ..callingExtension = CometChatCallingExtension() // REMOVED in v6
97
+ ..extensions = CometChatUIKitChatExtensions.getDefaultExtensions() // REMOVED
98
+ ..aiFeature = CometChatUIKitChatAIFeatures.getDefaultAiFeatures(); // REMOVED
99
+ // ...
100
+ }
101
+ }
102
+
103
+ // ✅ v6 — inline, enableCalls + CallingConfiguration replace all three
104
+ final settings = (UIKitSettingsBuilder()
105
+ ..subscriptionType = CometChatSubscriptionType.allUsers
106
+ ..region = AppCredentials.region
107
+ ..appId = AppCredentials.appId
108
+ ..authKey = AppCredentials.authKey
109
+ ..enableCalls = true
110
+ ..callingConfiguration = CallingConfiguration())
111
+ .build();
112
+
113
+ CometChatUIKit.init(uiKitSettings: settings, onSuccess: (_) { ... });
114
+ ```
115
+
116
+ ### Removed v5 UIKitSettingsBuilder properties
117
+ - `callingExtension` → replaced by `enableCalls: true`
118
+ - `extensions` → removed (extensions auto-registered in v6)
119
+ - `aiFeature` → removed (AI features auto-registered in v6)
120
+
121
+ ### Calls SDK Init for Cached Sessions
122
+
123
+ ```dart
124
+ // ❌ v5 — CometChatCallingExtension handled it automatically
125
+
126
+ // ✅ v6 — explicit init needed when restoring cached session (no login call)
127
+ Future<void> _initCallsSdk() async {
128
+ await CallEventService.instance.init(
129
+ configuration: CallingConfiguration(),
130
+ );
131
+ }
132
+ // Call after checking getLoggedInUser() returns non-null
133
+ ```
134
+
135
+ ## Step 4: Remove GetX
136
+
137
+ ### PageManager → Navigator.push
138
+ ```dart
139
+ // ❌ v5
140
+ Get.put(PageManager());
141
+ Get.find<PageManager>().navigateToMessages(context: context, user: user);
142
+
143
+ // ✅ v6
144
+ Navigator.push(context, MaterialPageRoute(
145
+ builder: (_) => MessagesScreen(user: user),
146
+ ));
147
+ ```
148
+
149
+ ### GetBuilder → StatefulWidget with listener mixins
150
+ ```dart
151
+ // ❌ v5
152
+ GetBuilder<CometChatMessagesController>(
153
+ init: messagesController,
154
+ tag: messagesController.tag,
155
+ builder: (controller) => Scaffold(/* ... */),
156
+ )
157
+
158
+ // ✅ v6
159
+ class _MessagesScreenState extends State<MessagesScreen>
160
+ with UserListener, CometChatUserEventListener,
161
+ GroupListener, CometChatGroupEventListener {
162
+ late User? _user;
163
+ late Group? _group;
164
+ // setState() instead of controller.update()
165
+ }
166
+ ```
167
+
168
+ ### Rx variables → plain state
169
+ ```dart
170
+ // ❌ v5
171
+ var isBlockLoading = false.obs;
172
+ // Usage: isBlockLoading.value = true;
173
+
174
+ // ✅ v6
175
+ bool _isUserBlocked = false;
176
+ // Usage: setState(() => _isUserBlocked = true);
177
+ ```
178
+
179
+ ### Obx dialogs → StatefulBuilder
180
+ ```dart
181
+ // ❌ v5 — Obx in dialog for loading indicator
182
+ Obx(() => isLoading.value ? CircularProgressIndicator() : Icon(Icons.check))
183
+
184
+ // ✅ v6 — StatefulBuilder in dialog
185
+ StatefulBuilder(builder: (context, setDialogState) {
186
+ return isLoading ? CircularProgressIndicator() : Icon(Icons.check);
187
+ })
188
+ ```
189
+
190
+ ## Step 5: Removed v5 APIs
191
+
192
+ These v5 widget parameters/classes don't exist in v6:
193
+
194
+ | v5 API | Status in v6 |
195
+ |--------|-------------|
196
+ | `CometChatCompactMessageComposer` | Removed — use `CometChatMessageComposer` |
197
+ | `CometChatAIAssistantChatHistory` | Removed |
198
+ | `CometChatMessageHeader` `options` param | Removed — use `trailingView` |
199
+ | `CometChatMessageList` `messageId` param | Removed — use `goToMessageId` |
200
+ | `CometChatMessageList` `hideFlagOption` | Removed |
201
+ | `CometChatMessageList` `generateConversationSummary` | Removed |
202
+ | `getDataSource()` on message list | Removed |
203
+ | `AssetConstants.conversationSummaryOutlined` | Removed |
204
+ | `CometChatBannedMembers` (standalone widget) | Not exported in v6 |
205
+ | `CometChatCallLogParticipants` (standalone) | Not exported in v6 |
206
+ | `CometChatCallLogRecordings` (standalone) | Not exported in v6 |
207
+ | `CometChatCallLogHistory` (standalone) | Not exported in v6 |
208
+ | `CometChatCallingExtension()` | Replaced by `enableCalls: true` + `CallingConfiguration()` |
209
+ | `CometChatUIKitChatExtensions.getDefaultExtensions()` | Removed — auto-registered |
210
+ | `CometChatUIKitChatAIFeatures.getDefaultAiFeatures()` | Removed — auto-registered |
211
+ | `CallSettingsBuilder` | Replaced by `SessionSettingsBuilder` |
212
+ | `FormatPatterns.stripFormatting()` | Removed |
213
+ | `CallStateController.instance` | Replaced by `CallStateService.instance` |
214
+
215
+ ### CallSettingsBuilder → SessionSettingsBuilder
216
+ ```dart
217
+ // ❌ v5
218
+ CallSettingsBuilder()
219
+ ..enableDefaultLayout = true
220
+
221
+ // ✅ v6
222
+ SessionSettingsBuilder()
223
+ ..setLayout(LayoutType.tile)
224
+ ..startVideoPaused(true) // for audio calls
225
+ ..hideSwitchCameraButton(true)
226
+ ..hideToggleVideoButton(true)
227
+ ```
228
+
229
+ ## Step 6: Flatten Screen Structure
230
+
231
+ ```
232
+ # ❌ v5 — controller + widget per screen
233
+ messages/
234
+ ├── messages.dart # MessagesSample widget
235
+ └── messages_controller.dart # GetxController
236
+ group_info/
237
+ ├── cometchat_group_info.dart
238
+ └── cometchat_group_info_controller.dart
239
+
240
+ # ✅ v6 — single file per screen
241
+ screens/
242
+ ├── messages_screen.dart # Widget + state + listeners
243
+ ├── group_info_screen.dart
244
+ ├── home_screen.dart
245
+ └── ...
246
+ ```
247
+
248
+ ### Class Rename Map
249
+
250
+ | v5 Class | v6 Class |
251
+ |----------|----------|
252
+ | `MyHomePage` / `MyPageView` | `HomeScreen` |
253
+ | `MessagesSample` | `MessagesScreen` |
254
+ | `GuardScreen` | `GuardScreen` (same name, rewritten) |
255
+ | `LoginSampleUsers` | `LoginScreen` |
256
+
257
+ ## Step 7: Update MaterialApp
258
+
259
+ ```dart
260
+ // ❌ v5 — localization delegates, BuilderTypography, callMain entry point
261
+ MaterialApp(
262
+ supportedLocales: const [Locale('en'), Locale('ar'), ...],
263
+ localizationsDelegates: const [
264
+ cc.Translations.delegate,
265
+ GlobalMaterialLocalizations.delegate,
266
+ GlobalWidgetsLocalizations.delegate,
267
+ GlobalCupertinoLocalizations.delegate,
268
+ ],
269
+ theme: ThemeData(
270
+ fontFamily: BuilderTypography.font,
271
+ extensions: [CometChatColorPalette(primary: BuilderColor.brandColor)],
272
+ ),
273
+ navigatorKey: CallNavigationContext.navigatorKey,
274
+ )
275
+
276
+ // ✅ v6 — Material 3, no builder system, no localization delegates
277
+ MaterialApp(
278
+ debugShowCheckedModeBanner: false,
279
+ navigatorKey: LocalNotificationService.navigatorKey,
280
+ theme: ThemeData(
281
+ colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
282
+ useMaterial3: true,
283
+ ),
284
+ darkTheme: ThemeData(
285
+ colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple, brightness: Brightness.dark),
286
+ useMaterial3: true,
287
+ brightness: Brightness.dark,
288
+ ),
289
+ themeMode: ThemeMode.system,
290
+ )
291
+ ```
292
+
293
+ Remove the `callMain()` entry point and `CallApp`/`CallScreen` widget entirely. V6 renders the in-call UI via the `CometChatOngoingCall` widget (placed in your widget tree once the call is active) and presents incoming calls via `CometChatDisplayIncomingCallOverlay`. There is no `CallScreenOverlay.show()` API.
294
+
295
+ ## Step 8: Update Notification Services
296
+
297
+ | v5 Class | v6 Class |
298
+ |----------|----------|
299
+ | `VoipNotificationHandler` | `VoipCallHandler` |
300
+ | `APNSService` | `ApnsService` |
301
+ | `FirebaseService` | `FirebaseService` (same) |
302
+
303
+ ### VoIP Cold Start
304
+ ```dart
305
+ // ❌ v5 — handled in dashboard initState
306
+ VoipNotificationHandler.handleNativeCallIntent(context);
307
+
308
+ // ✅ v6 — init early in main(), markSdkReady after login
309
+ VoipCallHandler.instance.init(); // in main()
310
+ await VoipCallHandler.instance.markSdkReady(); // after login
311
+ ```
312
+
313
+ ## Step 9: resizeToAvoidBottomInset
314
+
315
+ ```dart
316
+ // ❌ v5 — default true, SafeArea wrapping
317
+ Scaffold(body: SafeArea(child: Column(children: [messageList, composer])))
318
+
319
+ // ✅ v6 — must be false, composer handles keyboard internally
320
+ Scaffold(
321
+ resizeToAvoidBottomInset: false,
322
+ body: Column(children: [Expanded(child: messageList), composer]),
323
+ )
324
+ ```
325
+
326
+ ## Step 10: Android Build
327
+
328
+ In `android/app/build.gradle(.kts)`:
329
+ ```kotlin
330
+ defaultConfig {
331
+ minSdk = 26 // Was 24 in v5, required by cometchat_calls_sdk in v6
332
+ }
333
+ ```
334
+
335
+ In `android/gradle.properties`:
336
+ ```properties
337
+ android.enableJetifier=true // Required for support library conflicts
338
+ ```
339
+
340
+ ## Step 11: Delete v5 Files
341
+
342
+ - `builder/` folder entirely
343
+ - `utils/page_manager.dart`, `initialize_cometchat.dart`, `bool_singleton.dart`, `text_constants.dart`
344
+ - `prefs/shared_preferences.dart`
345
+ - `services/bugsee_services.dart`
346
+ - `qr_scanner/` folder
347
+ - `ai_agents/` folder
348
+ - `call_screen.dart`
349
+ - `demo_meta_info_constants.dart` (recreate minimal if needed)
350
+ - All `*_controller.dart` files
351
+ - `auth/login_screen.dart` (if it depended on google_sign_in/firebase_auth)
352
+
353
+ ## Gotchas
354
+
355
+ - `CometChatCallingExtension()`, `extensions`, and `aiFeature` on UIKitSettingsBuilder don't exist in v6. Extensions and AI features are auto-registered. Only `enableCalls: true` + `CallingConfiguration()` is needed.
356
+ - `CallSettingsBuilder` is renamed to `SessionSettingsBuilder` with different API: `.setLayout(LayoutType.tile)` instead of `..enableDefaultLayout = true`.
357
+ - v6 `CometChatMessageList` doesn't have `messageId` param — use `goToMessageId` instead.
358
+ - `CometChatBannedMembers`, `CometChatCallLogParticipants`, `CometChatCallLogRecordings`, `CometChatCallLogHistory` are not exported as standalone widgets in v6.
359
+ - The `callMain()` entry point pattern (separate Dart entry point for Android CallActivity) is gone. V6 renders the in-call UI via the `CometChatOngoingCall` widget within your existing app navigator + `CometChatDisplayIncomingCallOverlay` for incoming-call UI.
360
+ - `FormatPatterns.stripFormatting()` doesn't exist in v6. Use `MarkdownTextFormatter` instead.
361
+
362
+ ## Checklist
363
+
364
+ - [ ] `pubspec.yaml` — remove `cometchat_calls_uikit`, `get`, and all unused deps
365
+ - [ ] All imports — `cometchat_calls_uikit` → `cometchat_chat_uikit/cometchat_calls_uikit.dart`
366
+ - [ ] All imports — remove `get/get.dart`
367
+ - [ ] Init — remove `CometChatCallingExtension`, `extensions`, `aiFeature`; add `enableCalls` + `CallingConfiguration`
368
+ - [ ] Add `CallEventService.instance.init()` for cached sessions
369
+ - [ ] Remove `PageManager` — replace with `Navigator.push`
370
+ - [ ] Remove all `GetBuilder`/`Obx`/`Get.put`/`Get.find`
371
+ - [ ] Remove all `*_controller.dart` files
372
+ - [ ] Flatten screens into `screens/` folder
373
+ - [ ] Remove `BuilderSettings` — toggle features per-widget (e.g. `disableReactions`, `hideReplyInThreadOption`) on the relevant CometChat widget instead
374
+ - [ ] Update `MaterialApp` — remove localization delegates, remove `BuilderTypography`
375
+ - [ ] Remove `callMain()` entry point and `CallScreen` widget
376
+ - [ ] `CallSettingsBuilder` → `SessionSettingsBuilder`
377
+ - [ ] `resizeToAvoidBottomInset: false` on all Scaffolds with composer
378
+ - [ ] Android `minSdk` = 26
379
+ - [ ] Android `enableJetifier = true`
380
+ - [ ] Delete all unused v5 files
381
+ - [ ] Test: init → login → conversations → messages → calls → logout → re-login