@cometchat/skills 4.4.2 → 5.0.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.
Files changed (518) hide show
  1. package/.claude-plugin/marketplace.json +55 -0
  2. package/.claude-plugin/plugin.json +14 -0
  3. package/CHANGELOG.md +44 -0
  4. package/LICENSE +21 -0
  5. package/MIGRATING.md +187 -0
  6. package/README.md +52 -156
  7. package/RULES.md +125 -0
  8. package/bin/cometchat-skills.mjs +1280 -0
  9. package/bin/legacy-skills.json +95 -0
  10. package/catalogs/android-v6.json +1646 -0
  11. package/catalogs/flutter-v6.json +651 -0
  12. package/catalogs/ios-v5.json +1383 -0
  13. package/catalogs/rn-calls-v5.json +134 -0
  14. package/catalogs/rn-calls-v5.symbols.txt +58 -0
  15. package/catalogs/rn-sdk-v4.json +672 -0
  16. package/catalogs/rn-v5.json +449 -0
  17. package/catalogs/rn-v5.symbols.txt +216 -0
  18. package/catalogs/sdk-android-v5.json +514 -0
  19. package/contracts.android-calls-v5.json +122 -0
  20. package/contracts.android-v6.json +135 -0
  21. package/contracts.angular-v5.json +694 -0
  22. package/contracts.flutter-calls-v5.json +77 -0
  23. package/contracts.flutter-v6.json +126 -0
  24. package/contracts.ios-calls-v5.json +67 -0
  25. package/contracts.ios-v5.json +436 -0
  26. package/contracts.json +82 -0
  27. package/contracts.rn-calls-v5.json +77 -0
  28. package/contracts.rn-v5.json +727 -0
  29. package/contracts.sdk-android-v5.json +15 -0
  30. package/contracts.web-calls-v5.json +45 -0
  31. package/features.android-calls-v5.json +246 -0
  32. package/features.android-v6.json +65 -0
  33. package/features.angular-v5.json +521 -0
  34. package/features.flutter-calls-v5.json +286 -0
  35. package/features.flutter-v6.json +484 -0
  36. package/features.ios-calls-v5.json +236 -0
  37. package/features.ios-v5.json +573 -0
  38. package/features.json +61 -0
  39. package/features.rn-calls-v5.json +187 -0
  40. package/features.rn-v5.json +614 -0
  41. package/features.sdk-android-v5.json +40 -0
  42. package/features.sdk-jsv4.json +24 -0
  43. package/features.web-calls-v5.json +108 -0
  44. package/package.json +156 -74
  45. package/peers.yaml +355 -0
  46. package/registry/README.md +31 -0
  47. package/registry/android-calls-v5.json +94 -0
  48. package/registry/android-v6.json +177 -0
  49. package/registry/angular-v5.json +154 -0
  50. package/registry/flutter-calls-v5.json +94 -0
  51. package/registry/flutter-v6.json +159 -0
  52. package/registry/ios-calls-v5.json +99 -0
  53. package/registry/ios-v5.json +152 -0
  54. package/registry/rn-calls-v5.json +99 -0
  55. package/registry/rn-v5.json +169 -0
  56. package/registry/sdk-android-v5.json +93 -0
  57. package/registry/sdk-jsv4.json +93 -0
  58. package/registry/web-calls-v5.json +94 -0
  59. package/registry/web-v7.json +154 -0
  60. package/skills/cometchat/SKILL.md +47 -2096
  61. package/skills/cometchat-a11y/SKILL.md +44 -472
  62. package/skills/cometchat-analytics/SKILL.md +61 -0
  63. package/skills/cometchat-android-v5-calls-sdk/SKILL.md +206 -0
  64. package/skills/cometchat-android-v5-calls-sdk/references/build-truth.md +63 -0
  65. package/skills/cometchat-android-v5-calls-sdk/references/docs-map.md +119 -0
  66. package/skills/cometchat-android-v5-calls-sdk/references/method-map.md +53 -0
  67. package/skills/cometchat-android-v5-calls-sdk/references/pitfalls.md +72 -0
  68. package/skills/cometchat-android-v5-calls-sdk/references/ringing.md +92 -0
  69. package/skills/cometchat-android-v5-calls-sdk/references/user-switch.md +90 -0
  70. package/skills/cometchat-android-v5-sdk/SKILL.md +127 -0
  71. package/skills/cometchat-android-v5-sdk/references/app-surface.md +88 -0
  72. package/skills/cometchat-android-v5-sdk/references/docs-map.md +91 -0
  73. package/skills/cometchat-android-v6-builder-settings/SKILL.md +51 -137
  74. package/skills/cometchat-android-v6-calls/SKILL.md +128 -413
  75. package/skills/cometchat-android-v6-compose-components/SKILL.md +84 -194
  76. package/skills/cometchat-android-v6-compose-customization/SKILL.md +66 -411
  77. package/skills/cometchat-android-v6-compose-placement/SKILL.md +154 -237
  78. package/skills/cometchat-android-v6-core/SKILL.md +236 -672
  79. package/skills/cometchat-android-v6-core/references/anti-patterns.md +31 -0
  80. package/skills/cometchat-android-v6-core/references/component-props.md +168 -0
  81. package/skills/cometchat-android-v6-core/references/docs-map.md +153 -0
  82. package/skills/cometchat-android-v6-core/references/layout.md +112 -0
  83. package/skills/cometchat-android-v6-core/references/lifecycle.md +75 -0
  84. package/skills/cometchat-android-v6-core/references/setup-credentials.md +105 -0
  85. package/skills/cometchat-android-v6-core/references/troubleshooting.md +36 -0
  86. package/skills/cometchat-android-v6-events/SKILL.md +46 -184
  87. package/skills/cometchat-android-v6-extensions/SKILL.md +39 -179
  88. package/skills/cometchat-android-v6-features/SKILL.md +74 -143
  89. package/skills/cometchat-android-v6-kotlin-components/SKILL.md +75 -193
  90. package/skills/cometchat-android-v6-kotlin-customization/SKILL.md +67 -419
  91. package/skills/cometchat-android-v6-kotlin-placement/SKILL.md +77 -223
  92. package/skills/cometchat-android-v6-migration/SKILL.md +67 -378
  93. package/skills/cometchat-android-v6-production/SKILL.md +41 -179
  94. package/skills/cometchat-android-v6-push/SKILL.md +39 -289
  95. package/skills/cometchat-android-v6-testing/SKILL.md +50 -265
  96. package/skills/cometchat-android-v6-troubleshooting/SKILL.md +70 -254
  97. package/skills/cometchat-angular-v5-calls/SKILL.md +193 -0
  98. package/skills/cometchat-angular-v5-components/SKILL.md +131 -0
  99. package/skills/cometchat-angular-v5-components/references/catalog.md +111 -0
  100. package/skills/cometchat-angular-v5-components/references/host-composed.md +46 -0
  101. package/skills/cometchat-angular-v5-core/SKILL.md +300 -0
  102. package/skills/cometchat-angular-v5-core/references/anti-patterns.md +49 -0
  103. package/skills/cometchat-angular-v5-core/references/component-props.md +55 -0
  104. package/skills/cometchat-angular-v5-core/references/dependencies.md +66 -0
  105. package/skills/cometchat-angular-v5-core/references/docs-map.md +132 -0
  106. package/skills/cometchat-angular-v5-core/references/layout.md +64 -0
  107. package/skills/cometchat-angular-v5-core/references/lifecycle.md +202 -0
  108. package/skills/cometchat-angular-v5-core/references/setup-credentials.md +137 -0
  109. package/skills/cometchat-angular-v5-core/references/theming.md +70 -0
  110. package/skills/cometchat-angular-v5-core/references/troubleshooting.md +27 -0
  111. package/skills/cometchat-angular-v5-customization/SKILL.md +94 -0
  112. package/skills/cometchat-angular-v5-features/SKILL.md +107 -0
  113. package/skills/cometchat-angular-v5-features/references/custom-messages.md +133 -0
  114. package/skills/cometchat-angular-v5-features/references/formatters.md +28 -0
  115. package/skills/cometchat-angular-v5-features/references/host-composed-extensions.md +85 -0
  116. package/skills/cometchat-angular-v5-migration/SKILL.md +40 -0
  117. package/skills/cometchat-angular-v5-migration/references/migration-guide.md +165 -0
  118. package/skills/cometchat-angular-v5-patterns/SKILL.md +107 -0
  119. package/skills/cometchat-angular-v5-placement/SKILL.md +133 -0
  120. package/skills/cometchat-angular-v5-placement/references/combined-app.md +174 -0
  121. package/skills/cometchat-angular-v5-placement/references/core-surface.md +199 -0
  122. package/skills/cometchat-angular-v5-production/SKILL.md +102 -0
  123. package/skills/cometchat-angular-v5-push/SKILL.md +61 -0
  124. package/skills/cometchat-angular-v5-testing/SKILL.md +112 -0
  125. package/skills/cometchat-angular-v5-troubleshooting/SKILL.md +96 -0
  126. package/skills/cometchat-audit/SKILL.md +61 -0
  127. package/skills/cometchat-compliance/SKILL.md +63 -0
  128. package/skills/cometchat-flutter-v5-sdk/SKILL.md +188 -0
  129. package/skills/cometchat-flutter-v5-sdk/references/doc-corrections.md +55 -0
  130. package/skills/cometchat-flutter-v5-sdk/references/docs-map.md +211 -0
  131. package/skills/cometchat-flutter-v5-sdk/references/platform-notes.md +48 -0
  132. package/skills/cometchat-flutter-v5-sdk/references/transcription.md +87 -0
  133. package/skills/cometchat-flutter-v6-calls/SKILL.md +75 -389
  134. package/skills/cometchat-flutter-v6-components/SKILL.md +88 -361
  135. package/skills/cometchat-flutter-v6-core/SKILL.md +154 -593
  136. package/skills/cometchat-flutter-v6-core/references/anti-patterns.md +55 -0
  137. package/skills/cometchat-flutter-v6-core/references/docs-map.md +143 -0
  138. package/skills/cometchat-flutter-v6-core/references/layout.md +45 -0
  139. package/skills/cometchat-flutter-v6-core/references/lifecycle.md +87 -0
  140. package/skills/cometchat-flutter-v6-core/references/setup-credentials.md +84 -0
  141. package/skills/cometchat-flutter-v6-core/references/troubleshooting.md +26 -0
  142. package/skills/cometchat-flutter-v6-customization/SKILL.md +70 -712
  143. package/skills/cometchat-flutter-v6-events/SKILL.md +79 -174
  144. package/skills/cometchat-flutter-v6-features/SKILL.md +55 -394
  145. package/skills/cometchat-flutter-v6-migration/SKILL.md +68 -367
  146. package/skills/cometchat-flutter-v6-migration/references/migration-guide.md +132 -0
  147. package/skills/cometchat-flutter-v6-patterns/SKILL.md +61 -0
  148. package/skills/cometchat-flutter-v6-placement/SKILL.md +94 -381
  149. package/skills/cometchat-flutter-v6-production/SKILL.md +59 -615
  150. package/skills/cometchat-flutter-v6-push/SKILL.md +46 -455
  151. package/skills/cometchat-flutter-v6-testing/SKILL.md +68 -299
  152. package/skills/cometchat-flutter-v6-troubleshooting/SKILL.md +54 -878
  153. package/skills/cometchat-i18n/SKILL.md +35 -404
  154. package/skills/cometchat-ios-calls/SKILL.md +112 -563
  155. package/skills/cometchat-ios-components/SKILL.md +44 -834
  156. package/skills/cometchat-ios-core/SKILL.md +182 -1068
  157. package/skills/cometchat-ios-core/references/anti-patterns.md +113 -0
  158. package/skills/cometchat-ios-core/references/docs-map.md +124 -0
  159. package/skills/cometchat-ios-core/references/install.md +23 -0
  160. package/skills/cometchat-ios-core/references/layout.md +219 -0
  161. package/skills/cometchat-ios-core/references/setup-credentials.md +197 -0
  162. package/skills/cometchat-ios-core/references/swiftui.md +91 -0
  163. package/skills/cometchat-ios-core/references/troubleshooting.md +100 -0
  164. package/skills/cometchat-ios-customization/SKILL.md +33 -968
  165. package/skills/cometchat-ios-features/SKILL.md +29 -738
  166. package/skills/cometchat-ios-migration/SKILL.md +39 -0
  167. package/skills/cometchat-ios-placement/SKILL.md +51 -729
  168. package/skills/cometchat-ios-production/SKILL.md +67 -723
  169. package/skills/cometchat-ios-push/SKILL.md +24 -602
  170. package/skills/cometchat-ios-testing/SKILL.md +36 -355
  171. package/skills/cometchat-ios-troubleshooting/SKILL.md +31 -989
  172. package/skills/cometchat-ios-v5-sdk/SKILL.md +161 -0
  173. package/skills/cometchat-ios-v5-sdk/references/docs-map.md +326 -0
  174. package/skills/cometchat-js-v5-sdk/SKILL.md +95 -0
  175. package/skills/cometchat-js-v5-sdk/references/docs-map.md +114 -0
  176. package/skills/cometchat-migrate-from-getstream/SKILL.md +65 -0
  177. package/skills/cometchat-migrate-from-getstream/references/concept-map.md +98 -0
  178. package/skills/cometchat-migrate-from-getstream/references/data-migration.md +74 -0
  179. package/skills/cometchat-migrate-from-getstream/references/feature-map.md +108 -0
  180. package/skills/cometchat-migrate-from-getstream/references/inventory.md +82 -0
  181. package/skills/cometchat-migrate-from-getstream/references/native-build.md +9 -0
  182. package/skills/cometchat-migrate-from-getstream/references/report-template.md +59 -0
  183. package/skills/cometchat-migrate-from-sendbird/SKILL.md +64 -0
  184. package/skills/cometchat-migrate-from-sendbird/references/concept-map.md +99 -0
  185. package/skills/cometchat-migrate-from-sendbird/references/data-migration.md +74 -0
  186. package/skills/cometchat-migrate-from-sendbird/references/feature-map.md +104 -0
  187. package/skills/cometchat-migrate-from-sendbird/references/inventory.md +86 -0
  188. package/skills/cometchat-migrate-from-sendbird/references/native-build.md +10 -0
  189. package/skills/cometchat-migrate-from-sendbird/references/report-template.md +59 -0
  190. package/skills/cometchat-migrate-from-twilio/SKILL.md +52 -0
  191. package/skills/cometchat-migrate-from-twilio/references/concept-map.md +49 -0
  192. package/skills/cometchat-migrate-from-twilio/references/data-migration.md +50 -0
  193. package/skills/cometchat-migrate-from-twilio/references/feature-map.md +27 -0
  194. package/skills/cometchat-migrate-from-twilio/references/inventory.md +53 -0
  195. package/skills/cometchat-migrate-from-twilio/references/report-template.md +52 -0
  196. package/skills/cometchat-moderation/SKILL.md +58 -0
  197. package/skills/cometchat-onboarding/SKILL.md +92 -0
  198. package/skills/cometchat-onboarding/references/archetypes.md +51 -0
  199. package/skills/cometchat-onboarding/references/calling-first.md +77 -0
  200. package/skills/cometchat-onboarding/references/not-in-this-pack.md +8 -0
  201. package/skills/cometchat-onboarding/references/plan-artifact.md +133 -0
  202. package/skills/cometchat-onboarding/references/platforms.md +105 -0
  203. package/skills/cometchat-react-native-bare-patterns/SKILL.md +120 -0
  204. package/skills/cometchat-react-native-calls/SKILL.md +200 -0
  205. package/skills/cometchat-react-native-components/SKILL.md +142 -0
  206. package/skills/cometchat-react-native-core/SKILL.md +335 -0
  207. package/skills/cometchat-react-native-core/references/anti-patterns.md +79 -0
  208. package/skills/cometchat-react-native-core/references/component-props.md +105 -0
  209. package/skills/cometchat-react-native-core/references/dependencies.md +62 -0
  210. package/skills/cometchat-react-native-core/references/docs-map.md +127 -0
  211. package/skills/cometchat-react-native-core/references/layout.md +61 -0
  212. package/skills/cometchat-react-native-core/references/lifecycle.md +64 -0
  213. package/skills/cometchat-react-native-core/references/setup-credentials.md +39 -0
  214. package/skills/cometchat-react-native-customization/SKILL.md +198 -0
  215. package/skills/cometchat-react-native-expo-patterns/SKILL.md +116 -0
  216. package/skills/cometchat-react-native-features/SKILL.md +122 -0
  217. package/skills/cometchat-react-native-migration/SKILL.md +103 -0
  218. package/skills/cometchat-react-native-placement/SKILL.md +158 -0
  219. package/skills/cometchat-react-native-production/SKILL.md +79 -0
  220. package/skills/cometchat-react-native-push/SKILL.md +88 -0
  221. package/skills/cometchat-react-native-sdk/SKILL.md +133 -0
  222. package/skills/cometchat-react-native-sdk/references/method-map.md +239 -0
  223. package/skills/cometchat-react-native-sdk/references/page-map.md +96 -0
  224. package/skills/cometchat-react-native-testing/SKILL.md +94 -0
  225. package/skills/cometchat-react-native-troubleshooting/SKILL.md +174 -0
  226. package/skills/cometchat-react-native-v5-sdk/SKILL.md +150 -0
  227. package/skills/cometchat-react-native-v5-sdk/references/docs-map.md +127 -0
  228. package/skills/cometchat-react-native-v5-sdk/references/ringing-voip.md +369 -0
  229. package/skills/cometchat-react-v7-calls/SKILL.md +75 -0
  230. package/skills/cometchat-react-v7-components/SKILL.md +72 -0
  231. package/skills/cometchat-react-v7-core/SKILL.md +101 -0
  232. package/skills/cometchat-react-v7-core/references/anti-patterns.md +19 -0
  233. package/skills/cometchat-react-v7-core/references/component-props.md +82 -0
  234. package/skills/cometchat-react-v7-core/references/dependencies.md +23 -0
  235. package/skills/cometchat-react-v7-core/references/docs-map.md +117 -0
  236. package/skills/cometchat-react-v7-core/references/layout.md +150 -0
  237. package/skills/cometchat-react-v7-core/references/lifecycle.md +74 -0
  238. package/skills/cometchat-react-v7-core/references/setup-credentials.md +58 -0
  239. package/skills/cometchat-react-v7-core/references/ssr.md +11 -0
  240. package/skills/cometchat-react-v7-core/references/theming.md +52 -0
  241. package/skills/cometchat-react-v7-customization/SKILL.md +84 -0
  242. package/skills/cometchat-react-v7-features/SKILL.md +92 -0
  243. package/skills/cometchat-react-v7-migration/SKILL.md +39 -0
  244. package/skills/cometchat-react-v7-migration/references/migration-guide.md +119 -0
  245. package/skills/cometchat-react-v7-patterns/SKILL.md +43 -0
  246. package/skills/cometchat-react-v7-placement/SKILL.md +106 -0
  247. package/skills/cometchat-react-v7-placement/references/recipes.md +354 -0
  248. package/skills/cometchat-react-v7-production/SKILL.md +84 -0
  249. package/skills/cometchat-react-v7-push/SKILL.md +53 -0
  250. package/skills/cometchat-react-v7-testing/SKILL.md +60 -0
  251. package/skills/cometchat-react-v7-troubleshooting/SKILL.md +47 -0
  252. package/skills/cometchat-security/SKILL.md +80 -0
  253. package/skills/cometchat-self-host/SKILL.md +56 -0
  254. package/test-suite/README.md +70 -0
  255. package/test-suite/catalogs/android-calls-v5.json +830 -0
  256. package/test-suite/catalogs/android-calls-v5.symbols.txt +499 -0
  257. package/test-suite/catalogs/android-v6.json +1646 -0
  258. package/test-suite/catalogs/android-v6.symbols.txt +298 -0
  259. package/test-suite/catalogs/angular-v5.json +7587 -0
  260. package/test-suite/catalogs/flutter-calls-v5.json +196 -0
  261. package/test-suite/catalogs/flutter-calls-v5.symbols.txt +59 -0
  262. package/test-suite/catalogs/flutter-v6.json +651 -0
  263. package/test-suite/catalogs/ios-calls-v5.json +158 -0
  264. package/test-suite/catalogs/ios-calls-v5.symbols.txt +70 -0
  265. package/test-suite/catalogs/ios-v5.json +1383 -0
  266. package/test-suite/catalogs/ios-v5.symbols.txt +699 -0
  267. package/test-suite/catalogs/rn-calls-v5.json +134 -0
  268. package/test-suite/catalogs/rn-sdk-v4.json +672 -0
  269. package/test-suite/catalogs/rn-v5.json +449 -0
  270. package/test-suite/catalogs/sdk-android-v5.json +514 -0
  271. package/test-suite/catalogs/sdk-android-v5.symbols.txt +254 -0
  272. package/test-suite/catalogs/sdk-jsv4.json +800 -0
  273. package/test-suite/catalogs/web-calls-v5.json +195 -0
  274. package/test-suite/catalogs/web-v7.json +1243 -0
  275. package/test-suite/scripts/build-registry.mjs +113 -0
  276. package/test-suite/scripts/catalog-refresh-dart.mjs +151 -0
  277. package/test-suite/scripts/catalog-refresh.mjs +100 -0
  278. package/test-suite/scripts/lint-skills.mjs +932 -0
  279. package/test-suite/scripts/measure-tokens.mjs +169 -0
  280. package/test-suite/scripts/typecheck-fences-dart.mjs +437 -0
  281. package/test-suite/scripts/typecheck-fences-kotlin.mjs +269 -0
  282. package/test-suite/scripts/typecheck-fences.mjs +206 -0
  283. package/test-suite/scripts/verify-catalog.mjs +242 -0
  284. package/test-suite/scripts/verify-contract-fences.mjs +94 -0
  285. package/test-suite/scripts/verify-detection.mjs +178 -0
  286. package/test-suite/scripts/verify-docs-base.mjs +91 -0
  287. package/test-suite/scripts/verify-family-agnostic.mjs +134 -0
  288. package/test-suite/scripts/verify-golden-path.mjs +138 -0
  289. package/test-suite/scripts/verify-oracle-components.mjs +133 -0
  290. package/test-suite/scripts/verify-template-bindings.mjs +148 -0
  291. package/test-suite/typecheck/angular-v5/package.json +21 -0
  292. package/test-suite/typecheck/angular-v5/tsconfig.json +21 -0
  293. package/test-suite/typecheck/flutter-v6/analysis_options.yaml +25 -0
  294. package/test-suite/typecheck/flutter-v6/pubspec.yaml +21 -0
  295. package/test-suite/typecheck/web-v7/package.json +18 -0
  296. package/test-suite/typecheck/web-v7/tsconfig.json +19 -0
  297. package/bin/install.js +0 -1003
  298. package/skills/.claude-plugin/marketplace.json +0 -86
  299. package/skills/cometchat/references/asking-questions.md +0 -48
  300. package/skills/cometchat-android-v5/SKILL.md +0 -121
  301. package/skills/cometchat-android-v5-calls/SKILL.md +0 -429
  302. package/skills/cometchat-android-v5-calls/references/README.md +0 -53
  303. package/skills/cometchat-android-v5-calls/references/add-calls-to-existing-chat.md +0 -197
  304. package/skills/cometchat-android-v5-calls/references/audio-controls.md +0 -91
  305. package/skills/cometchat-android-v5-calls/references/background-handling.md +0 -168
  306. package/skills/cometchat-android-v5-calls/references/call-layouts.md +0 -131
  307. package/skills/cometchat-android-v5-calls/references/call-logs.md +0 -113
  308. package/skills/cometchat-android-v5-calls/references/call-session.md +0 -274
  309. package/skills/cometchat-android-v5-calls/references/custom-ui.md +0 -150
  310. package/skills/cometchat-android-v5-calls/references/event-listeners.md +0 -123
  311. package/skills/cometchat-android-v5-calls/references/group-calls.md +0 -205
  312. package/skills/cometchat-android-v5-calls/references/idle-timeout.md +0 -117
  313. package/skills/cometchat-android-v5-calls/references/in-call-chat.md +0 -134
  314. package/skills/cometchat-android-v5-calls/references/join-session.md +0 -120
  315. package/skills/cometchat-android-v5-calls/references/migration-v4-to-v5.md +0 -222
  316. package/skills/cometchat-android-v5-calls/references/participant-management.md +0 -110
  317. package/skills/cometchat-android-v5-calls/references/picture-in-picture.md +0 -106
  318. package/skills/cometchat-android-v5-calls/references/raise-hand.md +0 -248
  319. package/skills/cometchat-android-v5-calls/references/recording.md +0 -101
  320. package/skills/cometchat-android-v5-calls/references/ringing-integration.md +0 -152
  321. package/skills/cometchat-android-v5-calls/references/screen-sharing.md +0 -78
  322. package/skills/cometchat-android-v5-calls/references/server-fcm-voip.md +0 -215
  323. package/skills/cometchat-android-v5-calls/references/session-settings.md +0 -121
  324. package/skills/cometchat-android-v5-calls/references/setup.md +0 -137
  325. package/skills/cometchat-android-v5-calls/references/share-invite.md +0 -156
  326. package/skills/cometchat-android-v5-calls/references/video-controls.md +0 -87
  327. package/skills/cometchat-android-v5-calls/references/voip-calling.md +0 -526
  328. package/skills/cometchat-android-v5-components/SKILL.md +0 -431
  329. package/skills/cometchat-android-v5-core/SKILL.md +0 -486
  330. package/skills/cometchat-android-v5-customization/SKILL.md +0 -469
  331. package/skills/cometchat-android-v5-extensions/SKILL.md +0 -127
  332. package/skills/cometchat-android-v5-features/SKILL.md +0 -131
  333. package/skills/cometchat-android-v5-placement/SKILL.md +0 -277
  334. package/skills/cometchat-android-v5-production/SKILL.md +0 -95
  335. package/skills/cometchat-android-v5-push/SKILL.md +0 -619
  336. package/skills/cometchat-android-v5-testing/SKILL.md +0 -188
  337. package/skills/cometchat-android-v5-theming/SKILL.md +0 -167
  338. package/skills/cometchat-android-v5-troubleshooting/SKILL.md +0 -74
  339. package/skills/cometchat-android-v6/SKILL.md +0 -108
  340. package/skills/cometchat-android-v6-calls/references/add-calls-to-existing-chat.md +0 -97
  341. package/skills/cometchat-android-v6-calls/references/advanced-features.md +0 -87
  342. package/skills/cometchat-android-v6-calls/references/call-layouts.md +0 -100
  343. package/skills/cometchat-android-v6-calls/references/call-session.md +0 -163
  344. package/skills/cometchat-android-v6-calls/references/device-management.md +0 -172
  345. package/skills/cometchat-android-v6-calls/references/group-calls.md +0 -191
  346. package/skills/cometchat-android-v6-calls/references/idle-timeout.md +0 -110
  347. package/skills/cometchat-android-v6-calls/references/in-call-chat.md +0 -141
  348. package/skills/cometchat-android-v6-calls/references/raise-hand.md +0 -188
  349. package/skills/cometchat-android-v6-calls/references/ringing-integration.md +0 -176
  350. package/skills/cometchat-android-v6-calls/references/server-fcm-voip.md +0 -127
  351. package/skills/cometchat-android-v6-calls/references/share-invite.md +0 -105
  352. package/skills/cometchat-android-v6-compose-theming/SKILL.md +0 -250
  353. package/skills/cometchat-android-v6-kotlin-theming/SKILL.md +0 -233
  354. package/skills/cometchat-angular-calls/SKILL.md +0 -380
  355. package/skills/cometchat-angular-calls/references/add-calls-to-existing-chat.md +0 -96
  356. package/skills/cometchat-angular-calls/references/call-layouts.md +0 -123
  357. package/skills/cometchat-angular-calls/references/call-session.md +0 -167
  358. package/skills/cometchat-angular-calls/references/custom-ui.md +0 -239
  359. package/skills/cometchat-angular-calls/references/device-management.md +0 -154
  360. package/skills/cometchat-angular-calls/references/group-calls.md +0 -433
  361. package/skills/cometchat-angular-calls/references/idle-timeout.md +0 -161
  362. package/skills/cometchat-angular-calls/references/in-call-chat.md +0 -148
  363. package/skills/cometchat-angular-calls/references/lazy-loading-pitfalls.md +0 -205
  364. package/skills/cometchat-angular-calls/references/migration-v4-to-v5.md +0 -53
  365. package/skills/cometchat-angular-calls/references/ngzone-and-async-callbacks.md +0 -184
  366. package/skills/cometchat-angular-calls/references/picture-in-picture.md +0 -285
  367. package/skills/cometchat-angular-calls/references/raise-hand.md +0 -172
  368. package/skills/cometchat-angular-calls/references/recording-screen-share.md +0 -260
  369. package/skills/cometchat-angular-calls/references/ringing-integration.md +0 -133
  370. package/skills/cometchat-angular-calls/references/server-web-push-vapid.md +0 -100
  371. package/skills/cometchat-angular-calls/references/share-invite.md +0 -122
  372. package/skills/cometchat-angular-calls/references/virtual-background.md +0 -29
  373. package/skills/cometchat-angular-components/SKILL.md +0 -235
  374. package/skills/cometchat-angular-core/SKILL.md +0 -386
  375. package/skills/cometchat-angular-customization/SKILL.md +0 -616
  376. package/skills/cometchat-angular-features/SKILL.md +0 -329
  377. package/skills/cometchat-angular-patterns/SKILL.md +0 -256
  378. package/skills/cometchat-angular-placement/SKILL.md +0 -314
  379. package/skills/cometchat-angular-production/SKILL.md +0 -564
  380. package/skills/cometchat-angular-push/SKILL.md +0 -389
  381. package/skills/cometchat-angular-testing/SKILL.md +0 -605
  382. package/skills/cometchat-angular-theming/SKILL.md +0 -290
  383. package/skills/cometchat-angular-troubleshooting/SKILL.md +0 -364
  384. package/skills/cometchat-astro-patterns/SKILL.md +0 -708
  385. package/skills/cometchat-calls/SKILL.md +0 -364
  386. package/skills/cometchat-calls/references/use-case-broadcast.md +0 -199
  387. package/skills/cometchat-calls/references/use-case-marketplace.md +0 -157
  388. package/skills/cometchat-calls/references/use-case-support.md +0 -189
  389. package/skills/cometchat-calls/references/use-case-team.md +0 -180
  390. package/skills/cometchat-calls/references/use-case-telehealth.md +0 -153
  391. package/skills/cometchat-components/SKILL.md +0 -1142
  392. package/skills/cometchat-core/SKILL.md +0 -1048
  393. package/skills/cometchat-customization/SKILL.md +0 -580
  394. package/skills/cometchat-customization/references/component-catalog.md +0 -236
  395. package/skills/cometchat-features/SKILL.md +0 -861
  396. package/skills/cometchat-flutter-v5/SKILL.md +0 -173
  397. package/skills/cometchat-flutter-v5-calls/SKILL.md +0 -455
  398. package/skills/cometchat-flutter-v5-calls/references/add-calls-to-existing-chat.md +0 -193
  399. package/skills/cometchat-flutter-v5-calls/references/call-layouts.md +0 -103
  400. package/skills/cometchat-flutter-v5-calls/references/call-session.md +0 -285
  401. package/skills/cometchat-flutter-v5-calls/references/device-management.md +0 -124
  402. package/skills/cometchat-flutter-v5-calls/references/group-calls.md +0 -181
  403. package/skills/cometchat-flutter-v5-calls/references/idle-timeout.md +0 -99
  404. package/skills/cometchat-flutter-v5-calls/references/in-call-chat.md +0 -135
  405. package/skills/cometchat-flutter-v5-calls/references/migration-v4-to-v5.md +0 -210
  406. package/skills/cometchat-flutter-v5-calls/references/raise-hand.md +0 -255
  407. package/skills/cometchat-flutter-v5-calls/references/ringing-integration.md +0 -196
  408. package/skills/cometchat-flutter-v5-calls/references/server-push-bridge.md +0 -101
  409. package/skills/cometchat-flutter-v5-calls/references/share-invite.md +0 -148
  410. package/skills/cometchat-flutter-v5-conversations/SKILL.md +0 -118
  411. package/skills/cometchat-flutter-v5-core/SKILL.md +0 -239
  412. package/skills/cometchat-flutter-v5-customization/SKILL.md +0 -358
  413. package/skills/cometchat-flutter-v5-events/SKILL.md +0 -156
  414. package/skills/cometchat-flutter-v5-messages/SKILL.md +0 -259
  415. package/skills/cometchat-flutter-v5-production/SKILL.md +0 -216
  416. package/skills/cometchat-flutter-v5-push/SKILL.md +0 -285
  417. package/skills/cometchat-flutter-v5-testing/SKILL.md +0 -401
  418. package/skills/cometchat-flutter-v5-theming/SKILL.md +0 -161
  419. package/skills/cometchat-flutter-v5-troubleshooting/SKILL.md +0 -130
  420. package/skills/cometchat-flutter-v5-users-groups/SKILL.md +0 -152
  421. package/skills/cometchat-flutter-v6/SKILL.md +0 -446
  422. package/skills/cometchat-flutter-v6-calls/references/add-calls-to-existing-chat.md +0 -136
  423. package/skills/cometchat-flutter-v6-calls/references/advanced-features.md +0 -89
  424. package/skills/cometchat-flutter-v6-calls/references/call-layouts.md +0 -105
  425. package/skills/cometchat-flutter-v6-calls/references/call-session.md +0 -229
  426. package/skills/cometchat-flutter-v6-calls/references/device-management.md +0 -105
  427. package/skills/cometchat-flutter-v6-calls/references/group-calls.md +0 -190
  428. package/skills/cometchat-flutter-v6-calls/references/idle-timeout.md +0 -88
  429. package/skills/cometchat-flutter-v6-calls/references/in-call-chat.md +0 -125
  430. package/skills/cometchat-flutter-v6-calls/references/raise-hand.md +0 -275
  431. package/skills/cometchat-flutter-v6-calls/references/ringing-integration.md +0 -171
  432. package/skills/cometchat-flutter-v6-calls/references/server-push-bridge.md +0 -93
  433. package/skills/cometchat-flutter-v6-calls/references/share-invite.md +0 -102
  434. package/skills/cometchat-flutter-v6-conversations/SKILL.md +0 -238
  435. package/skills/cometchat-flutter-v6-messages/SKILL.md +0 -384
  436. package/skills/cometchat-flutter-v6-theming/SKILL.md +0 -293
  437. package/skills/cometchat-flutter-v6-users-groups/SKILL.md +0 -224
  438. package/skills/cometchat-ios/SKILL.md +0 -325
  439. package/skills/cometchat-ios-calls/references/add-calls-to-existing-chat.md +0 -181
  440. package/skills/cometchat-ios-calls/references/audio-modes-and-controls.md +0 -45
  441. package/skills/cometchat-ios-calls/references/avaudiosession-routing.md +0 -188
  442. package/skills/cometchat-ios-calls/references/call-layouts.md +0 -76
  443. package/skills/cometchat-ios-calls/references/call-session.md +0 -218
  444. package/skills/cometchat-ios-calls/references/callkit-and-pushkit.md +0 -357
  445. package/skills/cometchat-ios-calls/references/custom-ui.md +0 -322
  446. package/skills/cometchat-ios-calls/references/device-management.md +0 -171
  447. package/skills/cometchat-ios-calls/references/group-calls.md +0 -359
  448. package/skills/cometchat-ios-calls/references/idle-timeout.md +0 -184
  449. package/skills/cometchat-ios-calls/references/in-call-chat.md +0 -179
  450. package/skills/cometchat-ios-calls/references/migration-v4-to-v5.md +0 -196
  451. package/skills/cometchat-ios-calls/references/picture-in-picture.md +0 -246
  452. package/skills/cometchat-ios-calls/references/raise-hand.md +0 -26
  453. package/skills/cometchat-ios-calls/references/recording-screen-share.md +0 -252
  454. package/skills/cometchat-ios-calls/references/ringing-integration.md +0 -143
  455. package/skills/cometchat-ios-calls/references/server-apns-pushkit.md +0 -267
  456. package/skills/cometchat-ios-calls/references/share-invite.md +0 -148
  457. package/skills/cometchat-ios-calls/references/swiftui-uikit-hosting.md +0 -246
  458. package/skills/cometchat-ios-calls/references/voip-cert-setup.md +0 -166
  459. package/skills/cometchat-ios-theming/SKILL.md +0 -667
  460. package/skills/cometchat-native-bare-patterns/SKILL.md +0 -550
  461. package/skills/cometchat-native-calls/SKILL.md +0 -671
  462. package/skills/cometchat-native-calls/references/add-calls-to-existing-chat.md +0 -203
  463. package/skills/cometchat-native-calls/references/call-layouts.md +0 -125
  464. package/skills/cometchat-native-calls/references/call-session.md +0 -182
  465. package/skills/cometchat-native-calls/references/custom-ui.md +0 -254
  466. package/skills/cometchat-native-calls/references/device-management.md +0 -158
  467. package/skills/cometchat-native-calls/references/expo-vs-bare.md +0 -179
  468. package/skills/cometchat-native-calls/references/group-calls.md +0 -296
  469. package/skills/cometchat-native-calls/references/idle-timeout.md +0 -128
  470. package/skills/cometchat-native-calls/references/in-call-chat.md +0 -145
  471. package/skills/cometchat-native-calls/references/migration-v4-to-v5.md +0 -72
  472. package/skills/cometchat-native-calls/references/picture-in-picture.md +0 -276
  473. package/skills/cometchat-native-calls/references/raise-hand.md +0 -205
  474. package/skills/cometchat-native-calls/references/recording-screen-share.md +0 -169
  475. package/skills/cometchat-native-calls/references/ringing-integration.md +0 -118
  476. package/skills/cometchat-native-calls/references/server-push-bridge.md +0 -135
  477. package/skills/cometchat-native-calls/references/server-push-payloads.md +0 -193
  478. package/skills/cometchat-native-calls/references/share-invite.md +0 -146
  479. package/skills/cometchat-native-calls/references/voip-push-end-to-end.md +0 -319
  480. package/skills/cometchat-native-components/SKILL.md +0 -628
  481. package/skills/cometchat-native-core/SKILL.md +0 -679
  482. package/skills/cometchat-native-customization/SKILL.md +0 -716
  483. package/skills/cometchat-native-expo-patterns/SKILL.md +0 -552
  484. package/skills/cometchat-native-features/SKILL.md +0 -638
  485. package/skills/cometchat-native-placement/SKILL.md +0 -509
  486. package/skills/cometchat-native-production/SKILL.md +0 -700
  487. package/skills/cometchat-native-push/SKILL.md +0 -594
  488. package/skills/cometchat-native-testing/SKILL.md +0 -582
  489. package/skills/cometchat-native-theming/SKILL.md +0 -681
  490. package/skills/cometchat-native-troubleshooting/SKILL.md +0 -501
  491. package/skills/cometchat-nextjs-patterns/SKILL.md +0 -899
  492. package/skills/cometchat-placement/SKILL.md +0 -1360
  493. package/skills/cometchat-production/SKILL.md +0 -1027
  494. package/skills/cometchat-react-calls/SKILL.md +0 -752
  495. package/skills/cometchat-react-calls/references/add-calls-to-existing-chat.md +0 -146
  496. package/skills/cometchat-react-calls/references/call-layouts.md +0 -160
  497. package/skills/cometchat-react-calls/references/call-session.md +0 -235
  498. package/skills/cometchat-react-calls/references/custom-ui.md +0 -247
  499. package/skills/cometchat-react-calls/references/device-management.md +0 -210
  500. package/skills/cometchat-react-calls/references/group-calls.md +0 -257
  501. package/skills/cometchat-react-calls/references/idle-timeout.md +0 -188
  502. package/skills/cometchat-react-calls/references/in-call-chat.md +0 -212
  503. package/skills/cometchat-react-calls/references/migration-v4-to-v5.md +0 -170
  504. package/skills/cometchat-react-calls/references/picture-in-picture.md +0 -245
  505. package/skills/cometchat-react-calls/references/raise-hand.md +0 -238
  506. package/skills/cometchat-react-calls/references/recording-screen-share.md +0 -144
  507. package/skills/cometchat-react-calls/references/ringing-integration.md +0 -255
  508. package/skills/cometchat-react-calls/references/server-web-push-vapid.md +0 -241
  509. package/skills/cometchat-react-calls/references/share-invite.md +0 -175
  510. package/skills/cometchat-react-calls/references/testing-calls-on-web.md +0 -216
  511. package/skills/cometchat-react-calls/references/virtual-background.md +0 -32
  512. package/skills/cometchat-react-calls/references/voip-and-web-push.md +0 -165
  513. package/skills/cometchat-react-patterns/SKILL.md +0 -628
  514. package/skills/cometchat-react-push/SKILL.md +0 -634
  515. package/skills/cometchat-react-router-patterns/SKILL.md +0 -758
  516. package/skills/cometchat-react-testing/SKILL.md +0 -413
  517. package/skills/cometchat-theming/SKILL.md +0 -498
  518. package/skills/cometchat-troubleshooting/SKILL.md +0 -294
@@ -1,222 +0,0 @@
1
- # CometChat Calls Android SDK v4 → v5 migration
2
-
3
- `com.cometchat:calls-sdk-android:5.+` is a drop-in upgrade for v4 — bump the Gradle dependency, existing code still compiles thanks to deprecated method shims.
4
-
5
- **Canonical docs:** https://www.cometchat.com/docs/calls/android/migration-guide-v5
6
-
7
- **Important:** This is the migration for the **Calls SDK** (v4 → v5 of the calls dependency). It is NOT the same as the **UI Kit cohort migration** (V5 cohort → V6 Compose cohort), which is documented in `cometchat-android-v6-migration`. You can be on UI Kit V5 cohort with Calls SDK v5 — they version independently.
8
-
9
- ---
10
-
11
- ## Step 1 — Bump the Gradle dependency
12
-
13
- ```kotlin
14
- // app/build.gradle.kts
15
- dependencies {
16
- implementation("com.cometchat:calls-sdk-android:5.+")
17
- }
18
- ```
19
-
20
- ```bash
21
- ./gradlew :app:dependencies | grep calls-sdk
22
- ```
23
-
24
- Should show `com.cometchat:calls-sdk-android:5.x.x`.
25
-
26
- ---
27
-
28
- ## Step 2 — Migrate init to the v5 builder + `Context`
29
-
30
- v5 still uses a builder — but the class is the **nested `CallAppSettings.CallAppSettingBuilder`** (singular "Setting"), and `init` now takes `Context` as its first argument.
31
-
32
- ```diff
33
- - val callAppSettings = CallAppSettings.Builder()
34
- - .setAppId("APP_ID")
35
- - .setRegion("REGION")
36
- - .build()
37
- - CometChatCalls.init(callAppSettings, object : CometChatCalls.CallbackListener<String>() {
38
- - override fun onSuccess(s: String) { /* ... */ }
39
- - override fun onError(e: CometChatException) { /* ... */ }
40
- - })
41
-
42
- + val callAppSettings = CallAppSettings.CallAppSettingBuilder() // nested, singular "Setting"
43
- + .setAppId("APP_ID")
44
- + .setRegion("REGION")
45
- + .build()
46
- + CometChatCalls.init(context, callAppSettings, object : CometChatCalls.CallbackListener<String>() {
47
- + override fun onSuccess(s: String) { /* ... */ }
48
- + override fun onError(e: CometChatException) { /* ... */ }
49
- + })
50
- ```
51
-
52
- > Verified against `calls-sdk-android` 5.x: `CometChatCalls.init(Context, CallAppSettings, CallbackListener<String>)` and `CallAppSettings.CallAppSettingBuilder().setAppId(...).setRegion(...).build()`. There is NO `CallAppSettings(appId =, region =)` constructor and NO `CallAppSettings.Builder()`.
53
-
54
- (V5 also supports coroutine-suspend `init` via `kotlinx.coroutines` extensions, if you've enabled them.)
55
-
56
- ---
57
-
58
- ## Step 3 — Add Calls SDK login (mandatory)
59
-
60
- In v5 the Calls SDK has its own auth state, separate from the Chat SDK. Without a Calls SDK login step, the FIRST calls API call (initiate, join, generateToken) throws **"auth token cannot be null"**.
61
-
62
- The Android v5 Calls SDK exposes two `CometChatCalls.login` overloads — match the API exactly:
63
-
64
- ```kotlin
65
- import com.cometchat.calls.core.CometChatCalls
66
- import com.cometchat.calls.exceptions.CometChatException as CallsException
67
- import com.cometchat.calls.model.CallUser // ← callback returns CallUser, NOT User
68
-
69
- // Dev mode (Auth Key)
70
- CometChatCalls.login(uid, AUTH_KEY,
71
- object : CometChatCalls.CallbackListener<CallUser>() {
72
- override fun onSuccess(callUser: CallUser) {
73
- // calls SDK is now ready
74
- }
75
- override fun onError(e: CallsException) {
76
- // surface to user — common cause: typo in app id / auth key
77
- }
78
- })
79
-
80
- // Production mode (server-minted auth token)
81
- CometChatCalls.login(authToken,
82
- object : CometChatCalls.CallbackListener<CallUser>() { /* … */ })
83
- ```
84
-
85
- **Hard rules:**
86
-
87
- 1. **Call this AFTER `CometChat.login()` succeeds** — the Calls SDK login won't work until the Chat SDK has a valid session.
88
- 2. **The callback receives `com.cometchat.calls.model.CallUser`**, not `com.cometchat.chat.models.User`. Importing the wrong type produces "Type mismatch" at compile time.
89
- 3. **Re-login on every cold start** — the Chat SDK persists login across launches via Shared Prefs; the Calls SDK does NOT. Each app launch where `CometChat.getLoggedInUser()` returns non-null still needs a fresh `CometChatCalls.login` call.
90
- 4. **Don't try `user.authToken`** — `com.cometchat.chat.models.User` does NOT expose `authToken` as a Kotlin property or Java getter on Android. Use the (uid, apiKey) overload for dev, or fetch the auth token from your backend for production. *(This trapped a real smoke run — the chat-side User object hides the auth token.)*
91
-
92
- After this step, `generateToken()` no longer needs the authToken parameter — the Calls SDK uses its internal session.
93
-
94
- ---
95
-
96
- ## Step 4 — Migrate CallSettings.Builder to SessionSettings
97
-
98
- ```diff
99
- - val callSettings = CallSettings.Builder(activity)
100
- - .setSessionType(SessionType.VIDEO)
101
- - .startWithAudioMuted(false)
102
- - .showRecordingButton(true)
103
- - .build()
104
-
105
- + val sessionSettings = CometChatCalls.SessionSettingsBuilder()
106
- + .setSessionType(SessionType.VIDEO)
107
- + .startAudioMuted(false)
108
- + .hideRecordingButton(false) // INVERTED — showRecordingButton(true) → hideRecordingButton(false)
109
- + .setLayout(LayoutType.TILE)
110
- + .build()
111
- ```
112
-
113
- > There is NO `SessionSettings(sessionType =, startAudioMuted =, hideRecordingButton =, layout =)` data-class constructor on Android — use `CometChatCalls.SessionSettingsBuilder()` with the chained flag methods (cf. `call-session.md` rule 2).
114
-
115
- ---
116
-
117
- ## Step 5 — Migrate listener interface to event listeners
118
-
119
- v5 splits the old single events interface into five abstract listeners (`SessionStatusListener`,
120
- `ParticipantEventListener`, `MediaEventsListener`, `ButtonClickListener`, `LayoutListener`).
121
- Register them on the `CallSession` instance from `joinSession`'s `onSuccess` callback — there is
122
- NO `CometChatCalls.addEventListener` and NO `CallEvent` enum on Android (cf. `call-session.md`
123
- rule 3 and `references/event-listeners.md`). The listeners are lifecycle-aware (pass the
124
- Activity/Fragment as the first arg) and auto-removed on destroy.
125
-
126
- ```diff
127
- - class MyCallEvents : CometChatCallsEventsListener {
128
- - override fun onCallEnded() { /* ... */ }
129
- - override fun onUserJoined(user: User) { /* ... */ }
130
- - override fun onUserLeft(user: User) { /* ... */ }
131
- - override fun onError(error: CometChatException) { /* ... */ }
132
- - }
133
-
134
- + // In joinSession's onSuccess(callSession: CallSession):
135
- + callSession.addSessionStatusListener(this, object : SessionStatusListener() {
136
- + override fun onSessionLeft() { /* ... */ }
137
- + })
138
- + callSession.addParticipantEventListener(this, object : ParticipantEventListener() {
139
- + override fun onParticipantJoined(participant: Participant) { /* ... */ }
140
- + override fun onParticipantLeft(participant: Participant) { /* ... */ }
141
- + })
142
- + // ...plus MediaEventsListener / ButtonClickListener / LayoutListener as needed.
143
- + // See references/event-listeners.md for the full override set on each.
144
- ```
145
-
146
- ---
147
-
148
- ## Step 6 — Method renames + receiver shift (Android-specific)
149
-
150
- v5 moved call-control APIs from static methods on `CometChatCalls` to **instance methods on `CallSession`** (the object returned by `joinSession`'s callback). Session teardown moved from the v4 static `CometChatCalls.endSession()` to the instance method `callSession.leaveSession()` — this is what both calls-sdk-android sample apps use and what the migration guide maps it to. Keep a reference to the `CallSession` (or use `CallSession.getInstance()`); v4 static receivers throw "method not found" against the v5 SDK.
151
-
152
- ```diff
153
- // session lifecycle — receiver changes from CometChatCalls (static) to CallSession (instance)
154
- - CometChatCalls.endSession()
155
- + callSession.leaveSession() // call on the CallSession from joinSession's onSuccess
156
- + // OR if you don't have the reference handy:
157
- + CallSession.getInstance().leaveSession()
158
-
159
- // media controls — same receiver shift
160
- - CometChatCalls.muteAudio(true)
161
- + callSession.muteAudio()
162
- - CometChatCalls.muteAudio(false)
163
- + callSession.unmuteAudio()
164
-
165
- - CometChatCalls.pauseVideo(true)
166
- + callSession.pauseVideo()
167
- - CometChatCalls.pauseVideo(false)
168
- + callSession.resumeVideo()
169
-
170
- // screen share — Android is RECEIVE-ONLY in v5: there is NO screen-share initiation API.
171
- // Drop any startScreenShare()/stopScreenShare() calls; observe incoming shares via
172
- // ParticipantEventListener.onParticipantStartedScreenShare / onParticipantStoppedScreenShare.
173
- - CometChatCalls.startScreenShare()
174
- - CometChatCalls.stopScreenShare()
175
-
176
- // layout — instance method on the CallSession in v5 (NOT static on CometChatCalls)
177
- - CometChatCalls.setMode(mode)
178
- + callSession.setLayout(layout) // or CallSession.getInstance().setLayout(layout)
179
- ```
180
-
181
- **Hold onto the `CallSession` reference** returned by `joinSession`'s `onSuccess(callSession: CallSession)` callback — most v5 in-call APIs live there. Stashing it in an Activity field or ViewModel is the canonical pattern; the SDK also exposes `CallSession.getInstance()` as a fallback if you've lost the reference.
182
-
183
- ---
184
-
185
- ## Step 7 — Compose call surface unchanged
186
-
187
- If you're using XML `CometChatCallActivity`, no changes. If you've embedded the call surface via `CometChatOngoingCallView`, the v5 SDK's view component takes `SessionSettings` directly:
188
-
189
- ```diff
190
- - callView.startCall(callSettings)
191
- + callView.joinSession(sessionSettings)
192
- ```
193
-
194
- ---
195
-
196
- ## ConnectionService + ForegroundServiceType (no v5 changes)
197
-
198
- The seven hard rules from `cometchat-android-v5-calls/SKILL.md` still apply post-v5:
199
- - ConnectionService for incoming calls
200
- - `foregroundServiceType="microphone"` (or `camera|microphone`) for active calls
201
- - Hangup teardown sequence
202
-
203
- ---
204
-
205
- ## Verification checklist
206
-
207
- - [ ] `app/build.gradle.kts` lists calls-sdk-android v5+
208
- - [ ] `./gradlew :app:dependencies` shows v5 resolved
209
- - [ ] `CometChatCalls.login(authToken)` called after `CometChat.login`
210
- - [ ] `CometChatCallsEventsListener` replaced with the five split listeners on the `CallSession` instance
211
- - [ ] `CallSettings.Builder` replaced with `CometChatCalls.SessionSettingsBuilder()`
212
- - [ ] Method renames applied
213
- - [ ] FCM VoIP push still arrives + ConnectionService still surfaces UI
214
- - [ ] Real-device smoke: 2 phones, foreground + backgrounded recipient, mic/camera/screenshare/end
215
-
216
- ---
217
-
218
- ## Pointers
219
-
220
- - Canonical migration: https://www.cometchat.com/docs/calls/android/migration-guide-v5
221
- - `cometchat-android-v5-calls/SKILL.md` — seven hard rules (unchanged in v5)
222
- - `cometchat-android-v5-calls/references/server-fcm-voip.md` — FCM (unchanged in v5)
@@ -1,110 +0,0 @@
1
- ---
2
- name: participant-management
3
- description: Manage call participants — mute, pause video, pin/unpin, raise hand, view participant list. Use when implementing moderation, participant actions, or custom participant UI. Triggers on "mute participant", "pin participant", "participant list", "raise hand", "kick participant", "participant management".
4
- inclusion: manual
5
- ---
6
-
7
- # CometChat Calls SDK v5 — Participant Management
8
-
9
- ## Overview
10
-
11
- Control other participants during calls: mute their audio, pause their video, pin/unpin in layout. Monitor participant state via `ParticipantEventListener`. Raise hand is available for self.
12
-
13
- ## Key Imports
14
-
15
- ```kotlin
16
- import com.cometchat.calls.core.CallSession
17
- import com.cometchat.calls.listeners.ParticipantEventListener
18
- import com.cometchat.calls.model.Participant
19
- ```
20
-
21
- ## Implementation
22
-
23
- ### Participant Actions
24
-
25
- ```kotlin
26
- val callSession = CallSession.getInstance()
27
-
28
- // Mute a participant's audio
29
- callSession.muteParticipant(participant.uid)
30
-
31
- // Pause a participant's video
32
- callSession.pauseParticipantVideo(participant.uid)
33
-
34
- // Pin a participant (keeps them prominent in layout)
35
- callSession.pinParticipant(participant.uid) // per official docs (calls/android/participant-management)
36
-
37
- // Unpin (return to automatic speaker highlighting)
38
- callSession.unpinParticipant()
39
- ```
40
-
41
- ### Raise Hand (Self)
42
-
43
- Raise hand is controlled via the built-in UI button. Listen for it:
44
-
45
- ```kotlin
46
- callSession.addButtonClickListener(this, object : ButtonClickListener() {
47
- override fun onRaiseHandButtonClicked() {
48
- Log.d(TAG, "Hand raised/lowered")
49
- }
50
- // ... other overrides
51
- })
52
- ```
53
-
54
- ### Listen for Participant Events
55
-
56
- ```kotlin
57
- callSession.addParticipantEventListener(this, object : ParticipantEventListener() {
58
- override fun onParticipantJoined(participant: Participant) {}
59
- override fun onParticipantLeft(participant: Participant) {}
60
- override fun onParticipantListChanged(participants: List<Participant>) {
61
- // Full participant list — use for UI updates
62
- }
63
- override fun onParticipantAudioMuted(participant: Participant) {}
64
- override fun onParticipantAudioUnmuted(participant: Participant) {}
65
- override fun onParticipantVideoPaused(participant: Participant) {}
66
- override fun onParticipantVideoResumed(participant: Participant) {}
67
- override fun onParticipantHandRaised(participant: Participant) {}
68
- override fun onParticipantHandLowered(participant: Participant) {}
69
- override fun onDominantSpeakerChanged(participant: Participant) {}
70
- override fun onParticipantStartedScreenShare(participant: Participant) {}
71
- override fun onParticipantStoppedScreenShare(participant: Participant) {}
72
- override fun onParticipantStartedRecording(participant: Participant) {}
73
- override fun onParticipantStoppedRecording(participant: Participant) {}
74
- })
75
- ```
76
-
77
- ### Participant Object Properties
78
-
79
- | Property | Type | Description |
80
- |----------|------|-------------|
81
- | `uid` | String | CometChat user ID |
82
- | `name` | String | Display name |
83
- | `avatar` | String | Avatar URL |
84
- | `isAudioMuted` | Boolean | Audio muted? |
85
- | `isVideoPaused` | Boolean | Video paused? |
86
- | `isPinned` | Boolean | Pinned in layout? |
87
- | `isPresenting` | Boolean | Screen sharing? |
88
- | `raisedHandTimestamp` | Long | 0 if not raised |
89
-
90
- ### Show/Hide Participant List Button
91
-
92
- ```kotlin
93
- val sessionSettings = CometChatCalls.SessionSettingsBuilder()
94
- .hideParticipantListButton(false) // show participant list
95
- .hideRaiseHandButton(false) // show raise hand
96
- .build()
97
- ```
98
-
99
- ## Gotchas
100
-
101
- - By default, **all participants** have moderator access (can mute/pause others)
102
- - Implement role-based restrictions in your app logic if needed
103
- - Pinning only affects **your local view** — other participants can pin independently
104
- - `unpinParticipant()` takes no arguments — unpins whoever is currently pinned
105
- - `raisedHandTimestamp > 0` means hand is raised
106
- - There is no "kick" API — only mute and pause video
107
-
108
- ## Sample App Reference
109
-
110
- - `CallActivity.kt` — `setupCallListeners()` with `ButtonClickListener`
@@ -1,106 +0,0 @@
1
- ---
2
- name: picture-in-picture
3
- description: Enable Picture-in-Picture mode for calls. Use when implementing PiP, floating call window, auto-PiP on home press, or PiP layout events. Triggers on "picture in picture", "PiP", "pip mode", "floating window".
4
- inclusion: manual
5
- ---
6
-
7
- # CometChat Calls SDK v5 — Picture-in-Picture
8
-
9
- ## Overview
10
-
11
- PiP lets users continue calls in a floating window while using other apps. Your app manages Android's PiP APIs; the Calls SDK adjusts the call UI layout to fit the smaller window.
12
-
13
- ## Prerequisites
14
-
15
- - Android 8.0+ (API 26+)
16
- - Active call session
17
-
18
- ## Key Imports
19
-
20
- ```kotlin
21
- import android.app.PictureInPictureParams
22
- import android.util.Rational
23
- import com.cometchat.calls.core.CallSession
24
- import com.cometchat.calls.listeners.LayoutListener
25
- import com.cometchat.calls.model.LayoutType
26
- ```
27
-
28
- ## Implementation
29
-
30
- ### Manifest Configuration
31
-
32
- ```xml
33
- <activity
34
- android:name=".CallActivity"
35
- android:supportsPictureInPicture="true"
36
- android:configChanges="screenSize|smallestScreenSize|screenLayout|orientation" />
37
- ```
38
-
39
- ### Enable/Disable PiP Layout
40
-
41
- ```kotlin
42
- val callSession = CallSession.getInstance()
43
-
44
- // Tell SDK to adjust UI for PiP
45
- callSession.enablePictureInPictureLayout()
46
-
47
- // Restore full UI
48
- callSession.disablePictureInPictureLayout()
49
- ```
50
-
51
- ### Auto-Enter PiP on Home Press
52
-
53
- ```kotlin
54
- override fun onUserLeaveHint() {
55
- super.onUserLeaveHint()
56
- if (CallSession.getInstance().isSessionActive) {
57
- enterPictureInPictureMode(
58
- PictureInPictureParams.Builder()
59
- .setAspectRatio(Rational(16, 9))
60
- .build()
61
- )
62
- CallSession.getInstance().enablePictureInPictureLayout()
63
- }
64
- }
65
- ```
66
-
67
- ### Handle PiP Mode Changes
68
-
69
- ```kotlin
70
- override fun onPictureInPictureModeChanged(isInPiPMode: Boolean, config: Configuration) {
71
- super.onPictureInPictureModeChanged(isInPiPMode, config)
72
- if (isInPiPMode) {
73
- CallSession.getInstance().enablePictureInPictureLayout()
74
- } else {
75
- CallSession.getInstance().disablePictureInPictureLayout()
76
- }
77
- }
78
- ```
79
-
80
- ### Listen for PiP Events
81
-
82
- ```kotlin
83
- callSession.addLayoutListener(this, object : LayoutListener() {
84
- override fun onPictureInPictureLayoutEnabled() {
85
- // Hide custom overlays/controls
86
- }
87
- override fun onPictureInPictureLayoutDisabled() {
88
- // Show custom overlays/controls
89
- }
90
- override fun onCallLayoutChanged(layoutType: LayoutType) {}
91
- override fun onParticipantListVisible() {}
92
- override fun onParticipantListHidden() {}
93
- })
94
- ```
95
-
96
- ## Gotchas
97
-
98
- - The SDK only adjusts the **call UI layout** — your app must call `enterPictureInPictureMode()` itself
99
- - `configChanges` in manifest prevents activity restart during PiP transitions
100
- - PiP has no effect on Android < 8.0
101
- - Hide custom controls in PiP mode — they won't be usable in the small window
102
- - Use `isSessionActive` check before entering PiP to avoid errors
103
-
104
- ## Sample App Reference
105
-
106
- - `CallActivity.kt` — Call activity that could be extended with PiP support
@@ -1,248 +0,0 @@
1
- # Raise hand on Android V5 (Java + Kotlin Views)
2
-
3
- Native CometChat Calls SDK for Android. The shape mirrors web (raise/lower + listener events + button-hide flag); Android-specific is the listener attachment lifecycle (Activity/Fragment) + accessibility via `View.announceForAccessibility`.
4
-
5
- **Canonical docs:** https://www.cometchat.com/docs/calls/android/raise-hand
6
- **Read first:** `cometchat-react-calls/references/raise-hand.md` — UX shape + anti-patterns.
7
-
8
- ---
9
-
10
- ## SDK API
11
-
12
- ```kotlin
13
- import com.cometchat.calls.core.CometChatCalls
14
- import com.cometchat.calls.core.CallSession
15
- import com.cometchat.calls.listeners.ParticipantEventListener
16
- import com.cometchat.calls.model.Participant
17
- import com.cometchat.calls.model.SessionType
18
-
19
- // Local user — raiseHand / lowerHand are instance methods on the CallSession singleton.
20
- CallSession.getInstance().raiseHand()
21
- CallSession.getInstance().lowerHand()
22
-
23
- // Listener — raise/lower hand are participant events in v5.
24
- // Register on the CallSession instance from joinSession's onSuccess callback.
25
- callSession.addParticipantEventListener(this, object : ParticipantEventListener() {
26
- override fun onParticipantHandRaised(participant: Participant) {
27
- // participant.uid, participant.name
28
- }
29
-
30
- override fun onParticipantHandLowered(participant: Participant) {
31
- // ...
32
- }
33
- // ... other participant event handlers
34
- })
35
-
36
- // Settings flag
37
- val settings = CometChatCalls.SessionSettingsBuilder()
38
- .setSessionType(SessionType.VIDEO)
39
- .hideRaiseHandButton(true)
40
- .build()
41
- ```
42
-
43
- For **Java**:
44
-
45
- ```java
46
- CallSession.getInstance().raiseHand();
47
- CallSession.getInstance().lowerHand();
48
-
49
- callSession.addParticipantEventListener(this, new ParticipantEventListener() {
50
- @Override
51
- public void onParticipantHandRaised(Participant participant) { /* ... */ }
52
-
53
- @Override
54
- public void onParticipantHandLowered(Participant participant) { /* ... */ }
55
- // ...
56
- });
57
- ```
58
-
59
- ---
60
-
61
- ## Lifecycle: where to attach the listener
62
-
63
- For a single-Activity call surface:
64
-
65
- ```kotlin
66
- class CallActivity : AppCompatActivity() {
67
-
68
- private lateinit var raiseHandViewModel: RaiseHandViewModel
69
- private val callListener = object : ParticipantEventListener() {
70
- override fun onParticipantHandRaised(p: Participant) {
71
- raiseHandViewModel.onRaised(p)
72
- }
73
- override fun onParticipantHandLowered(p: Participant) {
74
- raiseHandViewModel.onLowered(p)
75
- }
76
- // ...
77
- }
78
-
79
- override fun onCreate(savedInstanceState: Bundle?) {
80
- super.onCreate(savedInstanceState)
81
- raiseHandViewModel = ViewModelProvider(this)[RaiseHandViewModel::class.java]
82
- // Register on the CallSession instance (from joinSession's onSuccess) when
83
- // the session starts: callSession.addParticipantEventListener(this, callListener)
84
- // (rule 1.7 in cometchat-android-v5-calls). Listeners are lifecycle-aware.
85
- }
86
-
87
- override fun onDestroy() {
88
- super.onDestroy()
89
- // Listeners are lifecycle-aware (bound to the Activity passed as the first
90
- // arg) and auto-removed on destroy; otherwise leaveSession() tears them down.
91
- }
92
- }
93
- ```
94
-
95
- For Fragment-hosted calls, attach in `onViewCreated`, detach in `onDestroyView`.
96
-
97
- ---
98
-
99
- ## ViewModel pattern (Kotlin coroutines + StateFlow)
100
-
101
- ```kotlin
102
- data class RaisedParticipant(val uid: String, val name: String, val raisedAt: Long)
103
-
104
- data class RaiseHandUiState(
105
- val localRaised: Boolean = false,
106
- val raised: List<RaisedParticipant> = emptyList(),
107
- )
108
-
109
- class RaiseHandViewModel : ViewModel() {
110
- private val _state = MutableStateFlow(RaiseHandUiState())
111
- val state: StateFlow<RaiseHandUiState> = _state
112
-
113
- fun toggle() {
114
- if (_state.value.localRaised) {
115
- CallSession.getInstance().lowerHand()
116
- } else {
117
- CallSession.getInstance().raiseHand()
118
- }
119
- _state.update { it.copy(localRaised = !it.localRaised) }
120
- }
121
-
122
- fun onRaised(p: Participant) {
123
- val entry = RaisedParticipant(p.uid, p.name, System.currentTimeMillis())
124
- _state.update { state ->
125
- val next = state.raised.filter { it.uid != p.uid } + entry
126
- state.copy(raised = next.sortedBy { it.raisedAt })
127
- }
128
- }
129
-
130
- fun onLowered(p: Participant) {
131
- _state.update { state ->
132
- state.copy(raised = state.raised.filter { it.uid != p.uid })
133
- }
134
- }
135
- }
136
- ```
137
-
138
- `StateFlow` is the canonical Android single-source-of-truth pattern. Activities collect via `viewLifecycleOwner.lifecycleScope.launch` + `repeatOnLifecycle(STARTED)`.
139
-
140
- ---
141
-
142
- ## Toggle button
143
-
144
- ```kotlin
145
- class RaiseHandButton @JvmOverloads constructor(
146
- context: Context,
147
- attrs: AttributeSet? = null,
148
- ) : MaterialButton(context, attrs) {
149
-
150
- init {
151
- setOnClickListener {
152
- val raised = (tag as? Boolean) ?: false
153
- tag = !raised
154
- // VM toggle handled by Activity wiring — see below
155
- }
156
- }
157
-
158
- fun bind(viewModel: RaiseHandViewModel, lifecycleOwner: LifecycleOwner) {
159
- setOnClickListener {
160
- viewModel.toggle()
161
- }
162
-
163
- lifecycleOwner.lifecycleScope.launch {
164
- lifecycleOwner.repeatOnLifecycle(Lifecycle.State.STARTED) {
165
- viewModel.state.collect { state ->
166
- text = if (state.localRaised) "Lower" else "Raise"
167
- icon = ContextCompat.getDrawable(context,
168
- if (state.localRaised) R.drawable.ic_hand_raised_filled
169
- else R.drawable.ic_hand_raised)
170
- contentDescription = if (state.localRaised) "Lower hand" else "Raise hand"
171
- // a11y announcement on state change
172
- announceForAccessibility(if (state.localRaised) "Hand raised" else "Hand lowered")
173
- isSelected = state.localRaised
174
- }
175
- }
176
- }
177
- }
178
- }
179
- ```
180
-
181
- `announceForAccessibility` is the Android equivalent of web's `aria-live` and iOS's `UIAccessibility.post(.announcement, ...)`. TalkBack picks it up.
182
-
183
- ---
184
-
185
- ## Raised-hands BottomSheet
186
-
187
- ```kotlin
188
- class RaisedHandsBottomSheet : BottomSheetDialogFragment() {
189
-
190
- private val viewModel: RaiseHandViewModel by activityViewModels()
191
-
192
- override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View {
193
- val view = inflater.inflate(R.layout.bottomsheet_raised_hands, container, false)
194
- val recyclerView = view.findViewById<RecyclerView>(R.id.raised_hands_list)
195
- val adapter = RaisedHandsAdapter()
196
- recyclerView.adapter = adapter
197
-
198
- viewLifecycleOwner.lifecycleScope.launch {
199
- viewLifecycleOwner.repeatOnLifecycle(Lifecycle.State.STARTED) {
200
- viewModel.state.collect { state ->
201
- adapter.submitList(state.raised)
202
- }
203
- }
204
- }
205
-
206
- return view
207
- }
208
- }
209
- ```
210
-
211
- Use `BottomSheetDialogFragment` from `com.google.android.material.bottomsheet` — the canonical Material Design pattern for raised-hands roster on phones.
212
-
213
- ---
214
-
215
- ## Anti-patterns
216
-
217
- Web sister reference rules apply, plus Android-specific:
218
-
219
- 1. **Listener in `init { }` of an Activity.** Activity init runs before `onCreate`; SDK might not be ready. Attach in `onCreate` or later.
220
- 2. **Skipping `repeatOnLifecycle(STARTED)`.** Without it, `StateFlow.collect` runs even when Activity is paused — burns CPU during background.
221
- 3. **Forgetting `lifecycleScope`.** Detached coroutines leak across activity destruction.
222
- 4. **`MutableStateFlow.value = ...` from background thread without `_state.update`.** Race conditions on the list. Always use `update { ... }` for atomic state transitions.
223
- 5. **`announceForAccessibility` from `setOnClickListener`** before the visual state has changed. Order matters — update the View first, then announce.
224
-
225
- ---
226
-
227
- ## Verification checklist
228
-
229
- - [ ] `RaiseHandViewModel` uses `StateFlow` (not LiveData) for the call state
230
- - [ ] `ParticipantEventListener` attached on the `CallSession` at session start (lifecycle-aware; also torn down by `leaveSession()`)
231
- - [ ] `repeatOnLifecycle(Lifecycle.State.STARTED)` wraps every collect
232
- - [ ] Toggle button has `contentDescription` + `isSelected` set
233
- - [ ] `announceForAccessibility` on state change
234
- - [ ] `hideRaiseHandButton(true)` in SessionSettingsBuilder if custom UI
235
- - [ ] BottomSheetDialogFragment for raised-hands roster (phones) OR side panel (tablets)
236
- - [ ] Real-device smoke: 3 Android phones in same call, 2 raise → host's sheet shows both
237
- - [ ] TalkBack smoke: hand raise + lower announces correctly
238
-
239
- ---
240
-
241
- ## Pointers
242
-
243
- - `cometchat-react-calls/references/raise-hand.md` — sister reference (UX shape)
244
- - `cometchat-android-v5-calls` SKILL.md — V5 hard rules
245
- - `references/participant-management.md` — group call moderation patterns
246
- - `references/custom-ui.md` — Android custom call UI
247
- - Canonical docs: https://www.cometchat.com/docs/calls/android/raise-hand
248
- - For V6 (Compose / Kotlin Views split): `cometchat-android-v6-calls/references/raise-hand.md`