@cometchat/skills 4.4.1 → 5.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 (489) hide show
  1. package/.claude-plugin/marketplace.json +55 -0
  2. package/.claude-plugin/plugin.json +14 -0
  3. package/CHANGELOG.md +36 -0
  4. package/README.md +41 -163
  5. package/RULES.md +114 -0
  6. package/bin/cometchat-skills.mjs +1180 -0
  7. package/bin/legacy-skills.json +95 -0
  8. package/catalogs/android-v6.json +1646 -0
  9. package/catalogs/flutter-v6.json +651 -0
  10. package/catalogs/ios-v5.json +1383 -0
  11. package/catalogs/rn-calls-v5.json +134 -0
  12. package/catalogs/rn-calls-v5.symbols.txt +58 -0
  13. package/catalogs/rn-sdk-v4.json +672 -0
  14. package/catalogs/rn-v5.json +449 -0
  15. package/catalogs/rn-v5.symbols.txt +216 -0
  16. package/catalogs/sdk-android-v5.json +514 -0
  17. package/contracts.android-calls-v5.json +122 -0
  18. package/contracts.android-v6.json +135 -0
  19. package/contracts.angular-v5.json +694 -0
  20. package/contracts.flutter-calls-v5.json +77 -0
  21. package/contracts.flutter-v6.json +126 -0
  22. package/contracts.ios-calls-v5.json +67 -0
  23. package/contracts.ios-v5.json +436 -0
  24. package/contracts.json +82 -0
  25. package/contracts.rn-calls-v5.json +77 -0
  26. package/contracts.rn-v5.json +727 -0
  27. package/contracts.sdk-android-v5.json +15 -0
  28. package/contracts.web-calls-v5.json +45 -0
  29. package/features.android-calls-v5.json +246 -0
  30. package/features.android-v6.json +65 -0
  31. package/features.angular-v5.json +521 -0
  32. package/features.flutter-calls-v5.json +286 -0
  33. package/features.flutter-v6.json +484 -0
  34. package/features.ios-calls-v5.json +236 -0
  35. package/features.ios-v5.json +573 -0
  36. package/features.json +61 -0
  37. package/features.rn-calls-v5.json +187 -0
  38. package/features.rn-v5.json +614 -0
  39. package/features.sdk-android-v5.json +40 -0
  40. package/features.sdk-jsv4.json +24 -0
  41. package/features.web-calls-v5.json +108 -0
  42. package/package.json +151 -74
  43. package/peers.yaml +312 -0
  44. package/registry/README.md +31 -0
  45. package/registry/android-calls-v5.json +54 -0
  46. package/registry/android-v6.json +137 -0
  47. package/registry/angular-v5.json +114 -0
  48. package/registry/flutter-calls-v5.json +54 -0
  49. package/registry/flutter-v6.json +119 -0
  50. package/registry/ios-calls-v5.json +59 -0
  51. package/registry/ios-v5.json +97 -0
  52. package/registry/rn-calls-v5.json +59 -0
  53. package/registry/rn-v5.json +129 -0
  54. package/registry/sdk-android-v5.json +53 -0
  55. package/registry/sdk-jsv4.json +53 -0
  56. package/registry/web-calls-v5.json +54 -0
  57. package/registry/web-v7.json +99 -0
  58. package/skills/cometchat/SKILL.md +42 -2096
  59. package/skills/cometchat-android-v5-calls-sdk/SKILL.md +206 -0
  60. package/skills/cometchat-android-v5-calls-sdk/references/build-truth.md +63 -0
  61. package/skills/cometchat-android-v5-calls-sdk/references/docs-map.md +119 -0
  62. package/skills/cometchat-android-v5-calls-sdk/references/method-map.md +53 -0
  63. package/skills/cometchat-android-v5-calls-sdk/references/pitfalls.md +72 -0
  64. package/skills/cometchat-android-v5-calls-sdk/references/ringing.md +92 -0
  65. package/skills/cometchat-android-v5-calls-sdk/references/user-switch.md +90 -0
  66. package/skills/cometchat-android-v5-sdk/SKILL.md +127 -0
  67. package/skills/cometchat-android-v5-sdk/references/app-surface.md +88 -0
  68. package/skills/cometchat-android-v5-sdk/references/docs-map.md +91 -0
  69. package/skills/cometchat-android-v6-builder-settings/SKILL.md +51 -137
  70. package/skills/cometchat-android-v6-calls/SKILL.md +128 -411
  71. package/skills/cometchat-android-v6-compose-components/SKILL.md +84 -194
  72. package/skills/cometchat-android-v6-compose-customization/SKILL.md +66 -411
  73. package/skills/cometchat-android-v6-compose-placement/SKILL.md +154 -237
  74. package/skills/cometchat-android-v6-core/SKILL.md +236 -672
  75. package/skills/cometchat-android-v6-core/references/anti-patterns.md +31 -0
  76. package/skills/cometchat-android-v6-core/references/component-props.md +168 -0
  77. package/skills/cometchat-android-v6-core/references/docs-map.md +153 -0
  78. package/skills/cometchat-android-v6-core/references/layout.md +112 -0
  79. package/skills/cometchat-android-v6-core/references/lifecycle.md +75 -0
  80. package/skills/cometchat-android-v6-core/references/setup-credentials.md +105 -0
  81. package/skills/cometchat-android-v6-core/references/troubleshooting.md +36 -0
  82. package/skills/cometchat-android-v6-events/SKILL.md +46 -184
  83. package/skills/cometchat-android-v6-extensions/SKILL.md +39 -179
  84. package/skills/cometchat-android-v6-features/SKILL.md +74 -143
  85. package/skills/cometchat-android-v6-kotlin-components/SKILL.md +75 -193
  86. package/skills/cometchat-android-v6-kotlin-customization/SKILL.md +67 -419
  87. package/skills/cometchat-android-v6-kotlin-placement/SKILL.md +77 -223
  88. package/skills/cometchat-android-v6-migration/SKILL.md +67 -378
  89. package/skills/cometchat-android-v6-production/SKILL.md +40 -179
  90. package/skills/cometchat-android-v6-push/SKILL.md +39 -289
  91. package/skills/cometchat-android-v6-testing/SKILL.md +50 -265
  92. package/skills/cometchat-android-v6-troubleshooting/SKILL.md +70 -254
  93. package/skills/cometchat-angular-v5-calls/SKILL.md +193 -0
  94. package/skills/cometchat-angular-v5-components/SKILL.md +131 -0
  95. package/skills/cometchat-angular-v5-components/references/catalog.md +111 -0
  96. package/skills/cometchat-angular-v5-components/references/host-composed.md +46 -0
  97. package/skills/cometchat-angular-v5-core/SKILL.md +300 -0
  98. package/skills/cometchat-angular-v5-core/references/anti-patterns.md +49 -0
  99. package/skills/cometchat-angular-v5-core/references/component-props.md +55 -0
  100. package/skills/cometchat-angular-v5-core/references/dependencies.md +66 -0
  101. package/skills/cometchat-angular-v5-core/references/docs-map.md +132 -0
  102. package/skills/cometchat-angular-v5-core/references/layout.md +64 -0
  103. package/skills/cometchat-angular-v5-core/references/lifecycle.md +202 -0
  104. package/skills/cometchat-angular-v5-core/references/setup-credentials.md +137 -0
  105. package/skills/cometchat-angular-v5-core/references/theming.md +70 -0
  106. package/skills/cometchat-angular-v5-core/references/troubleshooting.md +27 -0
  107. package/skills/cometchat-angular-v5-customization/SKILL.md +94 -0
  108. package/skills/cometchat-angular-v5-features/SKILL.md +107 -0
  109. package/skills/cometchat-angular-v5-features/references/custom-messages.md +133 -0
  110. package/skills/cometchat-angular-v5-features/references/formatters.md +28 -0
  111. package/skills/cometchat-angular-v5-features/references/host-composed-extensions.md +85 -0
  112. package/skills/cometchat-angular-v5-migration/SKILL.md +40 -0
  113. package/skills/cometchat-angular-v5-migration/references/migration-guide.md +165 -0
  114. package/skills/cometchat-angular-v5-patterns/SKILL.md +107 -0
  115. package/skills/cometchat-angular-v5-placement/SKILL.md +133 -0
  116. package/skills/cometchat-angular-v5-placement/references/combined-app.md +174 -0
  117. package/skills/cometchat-angular-v5-placement/references/core-surface.md +199 -0
  118. package/skills/cometchat-angular-v5-production/SKILL.md +101 -0
  119. package/skills/cometchat-angular-v5-push/SKILL.md +61 -0
  120. package/skills/cometchat-angular-v5-testing/SKILL.md +112 -0
  121. package/skills/cometchat-angular-v5-troubleshooting/SKILL.md +96 -0
  122. package/skills/cometchat-flutter-v5-sdk/SKILL.md +188 -0
  123. package/skills/cometchat-flutter-v5-sdk/references/doc-corrections.md +55 -0
  124. package/skills/cometchat-flutter-v5-sdk/references/docs-map.md +211 -0
  125. package/skills/cometchat-flutter-v5-sdk/references/platform-notes.md +48 -0
  126. package/skills/cometchat-flutter-v5-sdk/references/transcription.md +87 -0
  127. package/skills/cometchat-flutter-v6-calls/SKILL.md +75 -387
  128. package/skills/cometchat-flutter-v6-components/SKILL.md +88 -361
  129. package/skills/cometchat-flutter-v6-core/SKILL.md +154 -593
  130. package/skills/cometchat-flutter-v6-core/references/anti-patterns.md +55 -0
  131. package/skills/cometchat-flutter-v6-core/references/docs-map.md +143 -0
  132. package/skills/cometchat-flutter-v6-core/references/layout.md +45 -0
  133. package/skills/cometchat-flutter-v6-core/references/lifecycle.md +87 -0
  134. package/skills/cometchat-flutter-v6-core/references/setup-credentials.md +84 -0
  135. package/skills/cometchat-flutter-v6-core/references/troubleshooting.md +26 -0
  136. package/skills/cometchat-flutter-v6-customization/SKILL.md +70 -712
  137. package/skills/cometchat-flutter-v6-events/SKILL.md +79 -174
  138. package/skills/cometchat-flutter-v6-features/SKILL.md +55 -394
  139. package/skills/cometchat-flutter-v6-migration/SKILL.md +68 -367
  140. package/skills/cometchat-flutter-v6-migration/references/migration-guide.md +131 -0
  141. package/skills/cometchat-flutter-v6-patterns/SKILL.md +61 -0
  142. package/skills/cometchat-flutter-v6-placement/SKILL.md +94 -381
  143. package/skills/cometchat-flutter-v6-production/SKILL.md +58 -615
  144. package/skills/cometchat-flutter-v6-push/SKILL.md +46 -455
  145. package/skills/cometchat-flutter-v6-testing/SKILL.md +68 -299
  146. package/skills/cometchat-flutter-v6-troubleshooting/SKILL.md +54 -878
  147. package/skills/cometchat-ios-calls/SKILL.md +105 -511
  148. package/skills/cometchat-ios-components/SKILL.md +44 -834
  149. package/skills/cometchat-ios-core/SKILL.md +181 -1068
  150. package/skills/cometchat-ios-core/references/anti-patterns.md +80 -0
  151. package/skills/cometchat-ios-core/references/docs-map.md +123 -0
  152. package/skills/cometchat-ios-core/references/install.md +23 -0
  153. package/skills/cometchat-ios-core/references/layout.md +186 -0
  154. package/skills/cometchat-ios-core/references/setup-credentials.md +197 -0
  155. package/skills/cometchat-ios-core/references/swiftui.md +91 -0
  156. package/skills/cometchat-ios-core/references/troubleshooting.md +100 -0
  157. package/skills/cometchat-ios-customization/SKILL.md +33 -968
  158. package/skills/cometchat-ios-features/SKILL.md +29 -738
  159. package/skills/cometchat-ios-migration/SKILL.md +39 -0
  160. package/skills/cometchat-ios-placement/SKILL.md +51 -729
  161. package/skills/cometchat-ios-push/SKILL.md +24 -602
  162. package/skills/cometchat-ios-v5-sdk/SKILL.md +161 -0
  163. package/skills/cometchat-ios-v5-sdk/references/docs-map.md +326 -0
  164. package/skills/cometchat-js-v5-sdk/SKILL.md +95 -0
  165. package/skills/cometchat-js-v5-sdk/references/docs-map.md +114 -0
  166. package/skills/cometchat-onboarding/SKILL.md +89 -0
  167. package/skills/cometchat-onboarding/references/archetypes.md +51 -0
  168. package/skills/cometchat-onboarding/references/calling-first.md +77 -0
  169. package/skills/cometchat-onboarding/references/not-in-this-pack.md +8 -0
  170. package/skills/cometchat-onboarding/references/plan-artifact.md +133 -0
  171. package/skills/cometchat-onboarding/references/platforms.md +90 -0
  172. package/skills/cometchat-react-native-bare-patterns/SKILL.md +120 -0
  173. package/skills/cometchat-react-native-calls/SKILL.md +200 -0
  174. package/skills/cometchat-react-native-components/SKILL.md +142 -0
  175. package/skills/cometchat-react-native-core/SKILL.md +313 -0
  176. package/skills/cometchat-react-native-core/references/anti-patterns.md +79 -0
  177. package/skills/cometchat-react-native-core/references/component-props.md +105 -0
  178. package/skills/cometchat-react-native-core/references/dependencies.md +62 -0
  179. package/skills/cometchat-react-native-core/references/docs-map.md +126 -0
  180. package/skills/cometchat-react-native-core/references/layout.md +61 -0
  181. package/skills/cometchat-react-native-core/references/lifecycle.md +64 -0
  182. package/skills/cometchat-react-native-core/references/setup-credentials.md +39 -0
  183. package/skills/cometchat-react-native-customization/SKILL.md +198 -0
  184. package/skills/cometchat-react-native-expo-patterns/SKILL.md +116 -0
  185. package/skills/cometchat-react-native-features/SKILL.md +122 -0
  186. package/skills/cometchat-react-native-migration/SKILL.md +103 -0
  187. package/skills/cometchat-react-native-placement/SKILL.md +158 -0
  188. package/skills/cometchat-react-native-production/SKILL.md +78 -0
  189. package/skills/cometchat-react-native-push/SKILL.md +88 -0
  190. package/skills/cometchat-react-native-sdk/SKILL.md +126 -0
  191. package/skills/cometchat-react-native-sdk/references/method-map.md +239 -0
  192. package/skills/cometchat-react-native-sdk/references/page-map.md +96 -0
  193. package/skills/cometchat-react-native-testing/SKILL.md +94 -0
  194. package/skills/cometchat-react-native-troubleshooting/SKILL.md +116 -0
  195. package/skills/cometchat-react-native-v5-sdk/SKILL.md +150 -0
  196. package/skills/cometchat-react-native-v5-sdk/references/docs-map.md +127 -0
  197. package/skills/cometchat-react-native-v5-sdk/references/ringing-voip.md +369 -0
  198. package/skills/cometchat-react-v7-calls/SKILL.md +75 -0
  199. package/skills/cometchat-react-v7-components/SKILL.md +72 -0
  200. package/skills/cometchat-react-v7-core/SKILL.md +101 -0
  201. package/skills/cometchat-react-v7-core/references/anti-patterns.md +19 -0
  202. package/skills/cometchat-react-v7-core/references/component-props.md +82 -0
  203. package/skills/cometchat-react-v7-core/references/dependencies.md +23 -0
  204. package/skills/cometchat-react-v7-core/references/docs-map.md +117 -0
  205. package/skills/cometchat-react-v7-core/references/i18n-rtl-a11y.md +22 -0
  206. package/skills/cometchat-react-v7-core/references/layout.md +158 -0
  207. package/skills/cometchat-react-v7-core/references/lifecycle.md +74 -0
  208. package/skills/cometchat-react-v7-core/references/setup-credentials.md +58 -0
  209. package/skills/cometchat-react-v7-core/references/ssr.md +11 -0
  210. package/skills/cometchat-react-v7-core/references/theming.md +52 -0
  211. package/skills/cometchat-react-v7-core/references/troubleshooting.md +28 -0
  212. package/skills/cometchat-react-v7-customization/SKILL.md +84 -0
  213. package/skills/cometchat-react-v7-features/SKILL.md +92 -0
  214. package/skills/cometchat-react-v7-migration/SKILL.md +39 -0
  215. package/skills/cometchat-react-v7-migration/references/migration-guide.md +119 -0
  216. package/skills/cometchat-react-v7-patterns/SKILL.md +43 -0
  217. package/skills/cometchat-react-v7-placement/SKILL.md +106 -0
  218. package/skills/cometchat-react-v7-placement/references/recipes.md +354 -0
  219. package/skills/cometchat-react-v7-push/SKILL.md +53 -0
  220. package/test-suite/README.md +70 -0
  221. package/test-suite/catalogs/android-calls-v5.json +830 -0
  222. package/test-suite/catalogs/android-calls-v5.symbols.txt +499 -0
  223. package/test-suite/catalogs/android-v6.json +1646 -0
  224. package/test-suite/catalogs/android-v6.symbols.txt +298 -0
  225. package/test-suite/catalogs/angular-v5.json +7587 -0
  226. package/test-suite/catalogs/flutter-calls-v5.json +196 -0
  227. package/test-suite/catalogs/flutter-calls-v5.symbols.txt +59 -0
  228. package/test-suite/catalogs/flutter-v6.json +651 -0
  229. package/test-suite/catalogs/ios-calls-v5.json +158 -0
  230. package/test-suite/catalogs/ios-calls-v5.symbols.txt +70 -0
  231. package/test-suite/catalogs/ios-v5.json +1383 -0
  232. package/test-suite/catalogs/ios-v5.symbols.txt +699 -0
  233. package/test-suite/catalogs/rn-calls-v5.json +134 -0
  234. package/test-suite/catalogs/rn-sdk-v4.json +672 -0
  235. package/test-suite/catalogs/rn-v5.json +449 -0
  236. package/test-suite/catalogs/sdk-android-v5.json +514 -0
  237. package/test-suite/catalogs/sdk-android-v5.symbols.txt +254 -0
  238. package/test-suite/catalogs/sdk-jsv4.json +800 -0
  239. package/test-suite/catalogs/web-calls-v5.json +195 -0
  240. package/test-suite/catalogs/web-v7.json +1243 -0
  241. package/test-suite/scripts/build-registry.mjs +113 -0
  242. package/test-suite/scripts/catalog-refresh-dart.mjs +151 -0
  243. package/test-suite/scripts/catalog-refresh.mjs +100 -0
  244. package/test-suite/scripts/lint-skills.mjs +909 -0
  245. package/test-suite/scripts/measure-tokens.mjs +169 -0
  246. package/test-suite/scripts/typecheck-fences-dart.mjs +437 -0
  247. package/test-suite/scripts/typecheck-fences-kotlin.mjs +269 -0
  248. package/test-suite/scripts/typecheck-fences.mjs +206 -0
  249. package/test-suite/scripts/verify-catalog.mjs +242 -0
  250. package/test-suite/scripts/verify-contract-fences.mjs +94 -0
  251. package/test-suite/scripts/verify-detection.mjs +178 -0
  252. package/test-suite/scripts/verify-docs-base.mjs +91 -0
  253. package/test-suite/scripts/verify-family-agnostic.mjs +130 -0
  254. package/test-suite/scripts/verify-golden-path.mjs +138 -0
  255. package/test-suite/scripts/verify-oracle-components.mjs +133 -0
  256. package/test-suite/scripts/verify-template-bindings.mjs +148 -0
  257. package/test-suite/typecheck/angular-v5/package.json +21 -0
  258. package/test-suite/typecheck/angular-v5/tsconfig.json +21 -0
  259. package/test-suite/typecheck/flutter-v6/analysis_options.yaml +25 -0
  260. package/test-suite/typecheck/flutter-v6/pubspec.yaml +21 -0
  261. package/test-suite/typecheck/web-v7/package.json +18 -0
  262. package/test-suite/typecheck/web-v7/tsconfig.json +19 -0
  263. package/bin/install.js +0 -1003
  264. package/skills/.claude-plugin/marketplace.json +0 -86
  265. package/skills/cometchat/references/asking-questions.md +0 -48
  266. package/skills/cometchat-a11y/SKILL.md +0 -477
  267. package/skills/cometchat-android-v5/SKILL.md +0 -121
  268. package/skills/cometchat-android-v5-calls/SKILL.md +0 -427
  269. package/skills/cometchat-android-v5-calls/references/README.md +0 -53
  270. package/skills/cometchat-android-v5-calls/references/add-calls-to-existing-chat.md +0 -197
  271. package/skills/cometchat-android-v5-calls/references/audio-controls.md +0 -91
  272. package/skills/cometchat-android-v5-calls/references/background-handling.md +0 -168
  273. package/skills/cometchat-android-v5-calls/references/call-layouts.md +0 -131
  274. package/skills/cometchat-android-v5-calls/references/call-logs.md +0 -113
  275. package/skills/cometchat-android-v5-calls/references/call-session.md +0 -274
  276. package/skills/cometchat-android-v5-calls/references/custom-ui.md +0 -150
  277. package/skills/cometchat-android-v5-calls/references/event-listeners.md +0 -123
  278. package/skills/cometchat-android-v5-calls/references/group-calls.md +0 -205
  279. package/skills/cometchat-android-v5-calls/references/idle-timeout.md +0 -117
  280. package/skills/cometchat-android-v5-calls/references/in-call-chat.md +0 -134
  281. package/skills/cometchat-android-v5-calls/references/join-session.md +0 -120
  282. package/skills/cometchat-android-v5-calls/references/migration-v4-to-v5.md +0 -222
  283. package/skills/cometchat-android-v5-calls/references/participant-management.md +0 -110
  284. package/skills/cometchat-android-v5-calls/references/picture-in-picture.md +0 -106
  285. package/skills/cometchat-android-v5-calls/references/raise-hand.md +0 -248
  286. package/skills/cometchat-android-v5-calls/references/recording.md +0 -101
  287. package/skills/cometchat-android-v5-calls/references/ringing-integration.md +0 -152
  288. package/skills/cometchat-android-v5-calls/references/screen-sharing.md +0 -78
  289. package/skills/cometchat-android-v5-calls/references/server-fcm-voip.md +0 -215
  290. package/skills/cometchat-android-v5-calls/references/session-settings.md +0 -121
  291. package/skills/cometchat-android-v5-calls/references/setup.md +0 -137
  292. package/skills/cometchat-android-v5-calls/references/share-invite.md +0 -156
  293. package/skills/cometchat-android-v5-calls/references/video-controls.md +0 -87
  294. package/skills/cometchat-android-v5-calls/references/voip-calling.md +0 -526
  295. package/skills/cometchat-android-v5-components/SKILL.md +0 -431
  296. package/skills/cometchat-android-v5-core/SKILL.md +0 -486
  297. package/skills/cometchat-android-v5-customization/SKILL.md +0 -469
  298. package/skills/cometchat-android-v5-extensions/SKILL.md +0 -127
  299. package/skills/cometchat-android-v5-features/SKILL.md +0 -131
  300. package/skills/cometchat-android-v5-placement/SKILL.md +0 -277
  301. package/skills/cometchat-android-v5-production/SKILL.md +0 -95
  302. package/skills/cometchat-android-v5-push/SKILL.md +0 -619
  303. package/skills/cometchat-android-v5-testing/SKILL.md +0 -188
  304. package/skills/cometchat-android-v5-theming/SKILL.md +0 -167
  305. package/skills/cometchat-android-v5-troubleshooting/SKILL.md +0 -74
  306. package/skills/cometchat-android-v6/SKILL.md +0 -108
  307. package/skills/cometchat-android-v6-calls/references/add-calls-to-existing-chat.md +0 -97
  308. package/skills/cometchat-android-v6-calls/references/advanced-features.md +0 -87
  309. package/skills/cometchat-android-v6-calls/references/call-layouts.md +0 -100
  310. package/skills/cometchat-android-v6-calls/references/call-session.md +0 -163
  311. package/skills/cometchat-android-v6-calls/references/device-management.md +0 -172
  312. package/skills/cometchat-android-v6-calls/references/group-calls.md +0 -191
  313. package/skills/cometchat-android-v6-calls/references/idle-timeout.md +0 -110
  314. package/skills/cometchat-android-v6-calls/references/in-call-chat.md +0 -141
  315. package/skills/cometchat-android-v6-calls/references/raise-hand.md +0 -188
  316. package/skills/cometchat-android-v6-calls/references/ringing-integration.md +0 -176
  317. package/skills/cometchat-android-v6-calls/references/server-fcm-voip.md +0 -127
  318. package/skills/cometchat-android-v6-calls/references/share-invite.md +0 -105
  319. package/skills/cometchat-android-v6-compose-theming/SKILL.md +0 -250
  320. package/skills/cometchat-android-v6-kotlin-theming/SKILL.md +0 -233
  321. package/skills/cometchat-angular-calls/SKILL.md +0 -378
  322. package/skills/cometchat-angular-calls/references/add-calls-to-existing-chat.md +0 -96
  323. package/skills/cometchat-angular-calls/references/call-layouts.md +0 -123
  324. package/skills/cometchat-angular-calls/references/call-session.md +0 -167
  325. package/skills/cometchat-angular-calls/references/custom-ui.md +0 -239
  326. package/skills/cometchat-angular-calls/references/device-management.md +0 -154
  327. package/skills/cometchat-angular-calls/references/group-calls.md +0 -433
  328. package/skills/cometchat-angular-calls/references/idle-timeout.md +0 -161
  329. package/skills/cometchat-angular-calls/references/in-call-chat.md +0 -148
  330. package/skills/cometchat-angular-calls/references/lazy-loading-pitfalls.md +0 -205
  331. package/skills/cometchat-angular-calls/references/migration-v4-to-v5.md +0 -53
  332. package/skills/cometchat-angular-calls/references/ngzone-and-async-callbacks.md +0 -184
  333. package/skills/cometchat-angular-calls/references/picture-in-picture.md +0 -285
  334. package/skills/cometchat-angular-calls/references/raise-hand.md +0 -172
  335. package/skills/cometchat-angular-calls/references/recording-screen-share.md +0 -260
  336. package/skills/cometchat-angular-calls/references/ringing-integration.md +0 -133
  337. package/skills/cometchat-angular-calls/references/server-web-push-vapid.md +0 -100
  338. package/skills/cometchat-angular-calls/references/share-invite.md +0 -122
  339. package/skills/cometchat-angular-calls/references/virtual-background.md +0 -29
  340. package/skills/cometchat-angular-components/SKILL.md +0 -235
  341. package/skills/cometchat-angular-core/SKILL.md +0 -386
  342. package/skills/cometchat-angular-customization/SKILL.md +0 -616
  343. package/skills/cometchat-angular-features/SKILL.md +0 -329
  344. package/skills/cometchat-angular-patterns/SKILL.md +0 -256
  345. package/skills/cometchat-angular-placement/SKILL.md +0 -314
  346. package/skills/cometchat-angular-production/SKILL.md +0 -564
  347. package/skills/cometchat-angular-push/SKILL.md +0 -389
  348. package/skills/cometchat-angular-testing/SKILL.md +0 -605
  349. package/skills/cometchat-angular-theming/SKILL.md +0 -290
  350. package/skills/cometchat-angular-troubleshooting/SKILL.md +0 -364
  351. package/skills/cometchat-astro-patterns/SKILL.md +0 -708
  352. package/skills/cometchat-calls/SKILL.md +0 -364
  353. package/skills/cometchat-calls/references/use-case-broadcast.md +0 -199
  354. package/skills/cometchat-calls/references/use-case-marketplace.md +0 -157
  355. package/skills/cometchat-calls/references/use-case-support.md +0 -189
  356. package/skills/cometchat-calls/references/use-case-team.md +0 -180
  357. package/skills/cometchat-calls/references/use-case-telehealth.md +0 -153
  358. package/skills/cometchat-components/SKILL.md +0 -1142
  359. package/skills/cometchat-core/SKILL.md +0 -1048
  360. package/skills/cometchat-customization/SKILL.md +0 -580
  361. package/skills/cometchat-customization/references/component-catalog.md +0 -236
  362. package/skills/cometchat-features/SKILL.md +0 -861
  363. package/skills/cometchat-flutter-v5/SKILL.md +0 -173
  364. package/skills/cometchat-flutter-v5-calls/SKILL.md +0 -453
  365. package/skills/cometchat-flutter-v5-calls/references/add-calls-to-existing-chat.md +0 -193
  366. package/skills/cometchat-flutter-v5-calls/references/call-layouts.md +0 -103
  367. package/skills/cometchat-flutter-v5-calls/references/call-session.md +0 -285
  368. package/skills/cometchat-flutter-v5-calls/references/device-management.md +0 -124
  369. package/skills/cometchat-flutter-v5-calls/references/group-calls.md +0 -181
  370. package/skills/cometchat-flutter-v5-calls/references/idle-timeout.md +0 -99
  371. package/skills/cometchat-flutter-v5-calls/references/in-call-chat.md +0 -135
  372. package/skills/cometchat-flutter-v5-calls/references/migration-v4-to-v5.md +0 -210
  373. package/skills/cometchat-flutter-v5-calls/references/raise-hand.md +0 -255
  374. package/skills/cometchat-flutter-v5-calls/references/ringing-integration.md +0 -196
  375. package/skills/cometchat-flutter-v5-calls/references/server-push-bridge.md +0 -101
  376. package/skills/cometchat-flutter-v5-calls/references/share-invite.md +0 -148
  377. package/skills/cometchat-flutter-v5-conversations/SKILL.md +0 -118
  378. package/skills/cometchat-flutter-v5-core/SKILL.md +0 -239
  379. package/skills/cometchat-flutter-v5-customization/SKILL.md +0 -358
  380. package/skills/cometchat-flutter-v5-events/SKILL.md +0 -156
  381. package/skills/cometchat-flutter-v5-messages/SKILL.md +0 -259
  382. package/skills/cometchat-flutter-v5-production/SKILL.md +0 -216
  383. package/skills/cometchat-flutter-v5-push/SKILL.md +0 -285
  384. package/skills/cometchat-flutter-v5-testing/SKILL.md +0 -401
  385. package/skills/cometchat-flutter-v5-theming/SKILL.md +0 -161
  386. package/skills/cometchat-flutter-v5-troubleshooting/SKILL.md +0 -130
  387. package/skills/cometchat-flutter-v5-users-groups/SKILL.md +0 -152
  388. package/skills/cometchat-flutter-v6/SKILL.md +0 -446
  389. package/skills/cometchat-flutter-v6-calls/references/add-calls-to-existing-chat.md +0 -136
  390. package/skills/cometchat-flutter-v6-calls/references/advanced-features.md +0 -89
  391. package/skills/cometchat-flutter-v6-calls/references/call-layouts.md +0 -105
  392. package/skills/cometchat-flutter-v6-calls/references/call-session.md +0 -229
  393. package/skills/cometchat-flutter-v6-calls/references/device-management.md +0 -105
  394. package/skills/cometchat-flutter-v6-calls/references/group-calls.md +0 -190
  395. package/skills/cometchat-flutter-v6-calls/references/idle-timeout.md +0 -88
  396. package/skills/cometchat-flutter-v6-calls/references/in-call-chat.md +0 -125
  397. package/skills/cometchat-flutter-v6-calls/references/raise-hand.md +0 -275
  398. package/skills/cometchat-flutter-v6-calls/references/ringing-integration.md +0 -171
  399. package/skills/cometchat-flutter-v6-calls/references/server-push-bridge.md +0 -93
  400. package/skills/cometchat-flutter-v6-calls/references/share-invite.md +0 -102
  401. package/skills/cometchat-flutter-v6-conversations/SKILL.md +0 -238
  402. package/skills/cometchat-flutter-v6-messages/SKILL.md +0 -384
  403. package/skills/cometchat-flutter-v6-theming/SKILL.md +0 -293
  404. package/skills/cometchat-flutter-v6-users-groups/SKILL.md +0 -224
  405. package/skills/cometchat-i18n/SKILL.md +0 -419
  406. package/skills/cometchat-ios/SKILL.md +0 -325
  407. package/skills/cometchat-ios-calls/references/add-calls-to-existing-chat.md +0 -174
  408. package/skills/cometchat-ios-calls/references/audio-modes-and-controls.md +0 -45
  409. package/skills/cometchat-ios-calls/references/avaudiosession-routing.md +0 -188
  410. package/skills/cometchat-ios-calls/references/call-layouts.md +0 -76
  411. package/skills/cometchat-ios-calls/references/call-session.md +0 -218
  412. package/skills/cometchat-ios-calls/references/callkit-and-pushkit.md +0 -357
  413. package/skills/cometchat-ios-calls/references/custom-ui.md +0 -322
  414. package/skills/cometchat-ios-calls/references/device-management.md +0 -171
  415. package/skills/cometchat-ios-calls/references/group-calls.md +0 -359
  416. package/skills/cometchat-ios-calls/references/idle-timeout.md +0 -184
  417. package/skills/cometchat-ios-calls/references/in-call-chat.md +0 -179
  418. package/skills/cometchat-ios-calls/references/migration-v4-to-v5.md +0 -196
  419. package/skills/cometchat-ios-calls/references/picture-in-picture.md +0 -246
  420. package/skills/cometchat-ios-calls/references/raise-hand.md +0 -26
  421. package/skills/cometchat-ios-calls/references/recording-screen-share.md +0 -252
  422. package/skills/cometchat-ios-calls/references/ringing-integration.md +0 -143
  423. package/skills/cometchat-ios-calls/references/server-apns-pushkit.md +0 -267
  424. package/skills/cometchat-ios-calls/references/share-invite.md +0 -148
  425. package/skills/cometchat-ios-calls/references/swiftui-uikit-hosting.md +0 -246
  426. package/skills/cometchat-ios-calls/references/voip-cert-setup.md +0 -166
  427. package/skills/cometchat-ios-production/SKILL.md +0 -738
  428. package/skills/cometchat-ios-testing/SKILL.md +0 -376
  429. package/skills/cometchat-ios-theming/SKILL.md +0 -667
  430. package/skills/cometchat-ios-troubleshooting/SKILL.md +0 -1003
  431. package/skills/cometchat-native-bare-patterns/SKILL.md +0 -550
  432. package/skills/cometchat-native-calls/SKILL.md +0 -669
  433. package/skills/cometchat-native-calls/references/add-calls-to-existing-chat.md +0 -203
  434. package/skills/cometchat-native-calls/references/call-layouts.md +0 -125
  435. package/skills/cometchat-native-calls/references/call-session.md +0 -182
  436. package/skills/cometchat-native-calls/references/custom-ui.md +0 -254
  437. package/skills/cometchat-native-calls/references/device-management.md +0 -158
  438. package/skills/cometchat-native-calls/references/expo-vs-bare.md +0 -179
  439. package/skills/cometchat-native-calls/references/group-calls.md +0 -296
  440. package/skills/cometchat-native-calls/references/idle-timeout.md +0 -128
  441. package/skills/cometchat-native-calls/references/in-call-chat.md +0 -145
  442. package/skills/cometchat-native-calls/references/migration-v4-to-v5.md +0 -72
  443. package/skills/cometchat-native-calls/references/picture-in-picture.md +0 -276
  444. package/skills/cometchat-native-calls/references/raise-hand.md +0 -205
  445. package/skills/cometchat-native-calls/references/recording-screen-share.md +0 -169
  446. package/skills/cometchat-native-calls/references/ringing-integration.md +0 -118
  447. package/skills/cometchat-native-calls/references/server-push-bridge.md +0 -135
  448. package/skills/cometchat-native-calls/references/server-push-payloads.md +0 -193
  449. package/skills/cometchat-native-calls/references/share-invite.md +0 -146
  450. package/skills/cometchat-native-calls/references/voip-push-end-to-end.md +0 -319
  451. package/skills/cometchat-native-components/SKILL.md +0 -628
  452. package/skills/cometchat-native-core/SKILL.md +0 -679
  453. package/skills/cometchat-native-customization/SKILL.md +0 -716
  454. package/skills/cometchat-native-expo-patterns/SKILL.md +0 -552
  455. package/skills/cometchat-native-features/SKILL.md +0 -638
  456. package/skills/cometchat-native-placement/SKILL.md +0 -509
  457. package/skills/cometchat-native-production/SKILL.md +0 -700
  458. package/skills/cometchat-native-push/SKILL.md +0 -594
  459. package/skills/cometchat-native-testing/SKILL.md +0 -582
  460. package/skills/cometchat-native-theming/SKILL.md +0 -681
  461. package/skills/cometchat-native-troubleshooting/SKILL.md +0 -501
  462. package/skills/cometchat-nextjs-patterns/SKILL.md +0 -899
  463. package/skills/cometchat-placement/SKILL.md +0 -1360
  464. package/skills/cometchat-production/SKILL.md +0 -1027
  465. package/skills/cometchat-react-calls/SKILL.md +0 -749
  466. package/skills/cometchat-react-calls/references/add-calls-to-existing-chat.md +0 -146
  467. package/skills/cometchat-react-calls/references/call-layouts.md +0 -160
  468. package/skills/cometchat-react-calls/references/call-session.md +0 -235
  469. package/skills/cometchat-react-calls/references/custom-ui.md +0 -247
  470. package/skills/cometchat-react-calls/references/device-management.md +0 -210
  471. package/skills/cometchat-react-calls/references/group-calls.md +0 -257
  472. package/skills/cometchat-react-calls/references/idle-timeout.md +0 -188
  473. package/skills/cometchat-react-calls/references/in-call-chat.md +0 -212
  474. package/skills/cometchat-react-calls/references/migration-v4-to-v5.md +0 -170
  475. package/skills/cometchat-react-calls/references/picture-in-picture.md +0 -245
  476. package/skills/cometchat-react-calls/references/raise-hand.md +0 -238
  477. package/skills/cometchat-react-calls/references/recording-screen-share.md +0 -144
  478. package/skills/cometchat-react-calls/references/ringing-integration.md +0 -255
  479. package/skills/cometchat-react-calls/references/server-web-push-vapid.md +0 -241
  480. package/skills/cometchat-react-calls/references/share-invite.md +0 -175
  481. package/skills/cometchat-react-calls/references/testing-calls-on-web.md +0 -216
  482. package/skills/cometchat-react-calls/references/virtual-background.md +0 -32
  483. package/skills/cometchat-react-calls/references/voip-and-web-push.md +0 -165
  484. package/skills/cometchat-react-patterns/SKILL.md +0 -628
  485. package/skills/cometchat-react-push/SKILL.md +0 -634
  486. package/skills/cometchat-react-router-patterns/SKILL.md +0 -758
  487. package/skills/cometchat-react-testing/SKILL.md +0 -413
  488. package/skills/cometchat-theming/SKILL.md +0 -498
  489. package/skills/cometchat-troubleshooting/SKILL.md +0 -294
@@ -1,274 +0,0 @@
1
- # Call session — joinSession with no ringing (Android V5 / Views)
2
-
3
- Server-generated sessionId, both parties enter it. Customer-validated against `calls-sdk-android-5/samples/sample-app/src/main/kotlin/com/cometchat/samplecalls/ui/activity/CallActivity.kt`.
4
-
5
- **Read first:** `cometchat-react-calls/references/call-session.md` — cross-platform architecture (sessionId strategies, server-side authorization). Then come back here for the Android shape.
6
-
7
- ---
8
-
9
- ## Hard rules (Android-specific overrides on top of the cross-platform rules)
10
-
11
- 1. **`CometChatCalls.joinSession(sessionId, sessionSettings, container, CallbackListener<CallSession>)`** takes the sessionId DIRECTLY — token generation happens internally. No separate `generateToken` call required. Matches the upstream sample.
12
- 2. **`CometChatCalls.SessionSettingsBuilder()` is the canonical settings shape** (nested class on `CometChatCalls`). Chained `.setTitle().startVideoPaused(false).startAudioMuted(false).build()`. NOT `SessionSettings(sessionType:, layout:)` — that constructor does not exist on Android.
13
- 3. **`SessionStatusListener` + `ButtonClickListener` are abstract classes registered on the `CallSession` instance** returned in `onSuccess`. NOT `CometChatCalls.addEventListener(CallEvent.SESSION_LEFT)` — that does not exist.
14
- 4. **`CometChatOngoingCallService.launch(this)` + `.abort(this)`** manage the platform foreground service. Call `launch()` in `onSessionJoined`; call `abort()` in EVERY termination path (`onSessionLeft`, `onConnectionClosed`, `onSessionTimedOut`, `onDestroy`, `endCall`). Service notification persists otherwise.
15
- 5. **For standalone session-only integrations, the Chat SDK is OPTIONAL.** The upstream Android sample only depends on `com.cometchat.calls-sdk-android`. Keep `CometChat.init` / `CometChat.login` only for additive (chat + calls) integrations.
16
- 6. **Runtime permission request** for `CAMERA` + `RECORD_AUDIO` (Android 6.0+). The manifest entries are necessary but not sufficient on modern Android.
17
-
18
- ---
19
-
20
- ## CallActivity (canonical XML/Views shape)
21
-
22
- ```kotlin
23
- package com.example.calls
24
-
25
- import android.os.Bundle
26
- import android.util.Log
27
- import android.widget.RelativeLayout
28
- import android.widget.Toast
29
- import androidx.activity.OnBackPressedCallback
30
- import androidx.appcompat.app.AppCompatActivity
31
- import com.cometchat.calls.core.CallSession
32
- import com.cometchat.calls.core.CometChatCalls
33
- import com.cometchat.calls.exceptions.CometChatException
34
- import com.cometchat.calls.listeners.ButtonClickListener
35
- import com.cometchat.calls.listeners.SessionStatusListener
36
- import com.cometchat.calls.services.CometChatOngoingCallService
37
-
38
- class CallActivity : AppCompatActivity() {
39
-
40
- companion object {
41
- private const val TAG = "CallActivity"
42
- const val EXTRA_SESSION_ID = "session_id"
43
- }
44
-
45
- private lateinit var callContainer: RelativeLayout
46
- private lateinit var sessionId: String
47
-
48
- override fun onCreate(savedInstanceState: Bundle?) {
49
- super.onCreate(savedInstanceState)
50
- setContentView(R.layout.activity_call)
51
-
52
- sessionId = intent.getStringExtra(EXTRA_SESSION_ID) ?: run {
53
- Toast.makeText(this, "Invalid session ID", Toast.LENGTH_SHORT).show()
54
- finish()
55
- return
56
- }
57
-
58
- callContainer = findViewById(R.id.call_container)
59
-
60
- onBackPressedDispatcher.addCallback(this, object : OnBackPressedCallback(true) {
61
- override fun handleOnBackPressed() = endCall()
62
- })
63
-
64
- joinSession()
65
- }
66
-
67
- private fun joinSession() {
68
- val sessionSettings = CometChatCalls.SessionSettingsBuilder()
69
- .setTitle("CometChat Meeting")
70
- .startVideoPaused(false)
71
- .startAudioMuted(false)
72
- .build()
73
-
74
- CometChatCalls.joinSession(
75
- sessionId,
76
- sessionSettings,
77
- callContainer,
78
- object : CometChatCalls.CallbackListener<CallSession>() {
79
- override fun onSuccess(callSession: CallSession) {
80
- Log.d(TAG, "Joined session: $sessionId")
81
- setupCallListeners(callSession)
82
- }
83
-
84
- override fun onError(e: CometChatException) {
85
- Log.e(TAG, "Failed to join session: ${e.message}")
86
- runOnUiThread {
87
- Toast.makeText(this@CallActivity, "Failed to join: ${e.message}", Toast.LENGTH_LONG).show()
88
- finish()
89
- }
90
- }
91
- }
92
- )
93
- }
94
-
95
- private fun setupCallListeners(callSession: CallSession) {
96
- callSession.addSessionStatusListener(this, object : SessionStatusListener() {
97
- override fun onSessionJoined() {
98
- CometChatOngoingCallService.launch(this@CallActivity)
99
- }
100
-
101
- // All termination events funnel through ONE guarded handleTermination().
102
- // The v5 Calls SDK fires onSessionLeft + onConnectionClosed in sequence
103
- // on every hangup. Activity.finish() is idempotent (safe to call multiple
104
- // times) but abort() isn't — multiple abort calls log warnings and waste
105
- // foreground-service teardown work.
106
- override fun onSessionLeft() = handleTermination()
107
- override fun onConnectionClosed() = handleTermination()
108
- override fun onSessionTimedOut() = handleTermination()
109
-
110
- override fun onConnectionLost() {
111
- runOnUiThread {
112
- Toast.makeText(this@CallActivity, "Connection lost", Toast.LENGTH_SHORT).show()
113
- }
114
- }
115
-
116
- override fun onConnectionRestored() {
117
- runOnUiThread {
118
- Toast.makeText(this@CallActivity, "Connection restored", Toast.LENGTH_SHORT).show()
119
- }
120
- }
121
- })
122
-
123
- callSession.addButtonClickListener(this, object : ButtonClickListener() {
124
- override fun onLeaveSessionButtonClicked() = endCall()
125
- })
126
- }
127
-
128
- private var isTerminating = false
129
-
130
- private fun handleTermination() {
131
- if (isTerminating) return
132
- isTerminating = true
133
- runOnUiThread {
134
- CometChatOngoingCallService.abort(this)
135
- if (!isFinishing) finish()
136
- }
137
- }
138
-
139
- private fun endCall() {
140
- val callSession = CallSession.getInstance()
141
- if (callSession.isSessionActive) callSession.leaveSession()
142
- handleTermination()
143
- }
144
-
145
- override fun onDestroy() {
146
- super.onDestroy()
147
- CometChatOngoingCallService.abort(this)
148
- }
149
- }
150
- ```
151
-
152
- XML (`res/layout/activity_call.xml`):
153
-
154
- ```xml
155
- <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
156
- android:id="@+id/call_container"
157
- android:layout_width="match_parent"
158
- android:layout_height="match_parent"
159
- android:background="@android:color/black" />
160
- ```
161
-
162
- **Why this shape:**
163
-
164
- - **Single-call `joinSession(sessionId, settings, container, callback)`** — token generation is internal. Customers don't manage tokens; the SDK does.
165
- - **`CometChatCalls.SessionSettingsBuilder()` (nested class)** — the outer namespacing matters; raw `SessionSettingsBuilder()` won't resolve.
166
- - **Listener-on-`CallSession`-instance pattern** — register against the `CallSession` from `onSuccess`, NOT against the global `CometChatCalls` singleton. Each session has its own listener registry.
167
- - **`onSessionLeft`, `onConnectionClosed`, `onSessionTimedOut` ALL terminate the activity.** All three are real termination paths.
168
- - **`CometChatOngoingCallService.launch/abort`** — required for Android 14+ foreground-service compliance with `FOREGROUND_SERVICE_MICROPHONE`. Skipping `abort()` leaves the persistent notification.
169
-
170
- ---
171
-
172
- ## Manifest requirements
173
-
174
- ```xml
175
- <uses-permission android:name="android.permission.INTERNET" />
176
- <uses-permission android:name="android.permission.CAMERA" />
177
- <uses-permission android:name="android.permission.RECORD_AUDIO" />
178
- <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
179
- <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
180
- <uses-permission android:name="android.permission.FOREGROUND_SERVICE_MICROPHONE" />
181
- <uses-permission android:name="android.permission.FOREGROUND_SERVICE_CAMERA" />
182
- <uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
183
-
184
- <application>
185
- <activity android:name=".CallActivity" />
186
- <service
187
- android:name="com.cometchat.calls.services.CometChatOngoingCallService"
188
- android:foregroundServiceType="microphone|camera"
189
- android:exported="false" />
190
- </application>
191
- ```
192
-
193
- ---
194
-
195
- ## Runtime permissions (Kotlin)
196
-
197
- ```kotlin
198
- val permLauncher = registerForActivityResult(
199
- ActivityResultContracts.RequestMultiplePermissions()
200
- ) { perms ->
201
- val granted = perms[Manifest.permission.CAMERA] == true &&
202
- perms[Manifest.permission.RECORD_AUDIO] == true
203
- if (granted) {
204
- // proceed to call
205
- } else {
206
- // show explanation + deep-link to app settings
207
- }
208
- }
209
-
210
- permLauncher.launch(arrayOf(
211
- Manifest.permission.CAMERA,
212
- Manifest.permission.RECORD_AUDIO,
213
- Manifest.permission.POST_NOTIFICATIONS, // Android 13+
214
- ))
215
- ```
216
-
217
- ---
218
-
219
- ## Deep-link routing (App Links)
220
-
221
- ```xml
222
- <activity android:name=".CallActivity">
223
- <intent-filter android:autoVerify="true">
224
- <action android:name="android.intent.action.VIEW" />
225
- <category android:name="android.intent.category.DEFAULT" />
226
- <category android:name="android.intent.category.BROWSABLE" />
227
- <data android:scheme="https" android:host="yourapp.com" android:pathPrefix="/meet/" />
228
- </intent-filter>
229
- </activity>
230
- ```
231
-
232
- `MainActivity.onCreate` / `onNewIntent` routes to `CallActivity` extracting the sessionId from `intent.data.lastPathSegment`.
233
-
234
- See `cometchat-android-v5-calls/references/share-invite.md` for full deep-link config.
235
-
236
- ---
237
-
238
- ## Anti-patterns
239
-
240
- 1. **`CometChatCalls.generateToken(sessionId)` then `joinSession(callToken, ...)` two-step.** The Android API takes sessionId directly via `joinSession(sessionId, settings, container, callback)`. The two-step exists for advanced cases (custom auth tokens) but the canonical pattern is single-call.
241
- 2. **`SessionSettings(sessionType:, layout:)` data-class constructor.** Doesn't exist on Android. Use `CometChatCalls.SessionSettingsBuilder().build()`.
242
- 3. **`CometChatCalls.addEventListener(CallEvent.SESSION_LEFT)`.** Doesn't exist on Android. Register `SessionStatusListener()` on the `CallSession` instance from `onSuccess`.
243
- 4. **Skipping `CometChatOngoingCallService.abort()` in `onDestroy` / `onConnectionClosed` / `onSessionTimedOut`.** Foreground-service notification persists; user sees "Ongoing call" with no way to clear.
244
- 5. **`addSessionStatusListener` without the `lifecycleOwner` (this) argument.** The two-arg form `(lifecycleOwner, listener)` ties listener cleanup to the activity's lifecycle — required to avoid leaks.
245
- 6. **Calling `leaveSession()` without checking `callSession.isSessionActive`.** Throws on double-leave; can happen if back button + onSessionLeft fire concurrently.
246
- 7. **Initializing Chat SDK for a session-only integration.** Wastes time and adds two extra failure modes. Drop `CometChat.init` / `CometChat.login` entirely for standalone session apps.
247
-
248
- ---
249
-
250
- ## Verification checklist
251
-
252
- - [ ] `CometChatCalls.joinSession(sessionId, settings, container, CallbackListener)` — single-call shape
253
- - [ ] Settings built via `CometChatCalls.SessionSettingsBuilder()`, not constructor
254
- - [ ] `SessionStatusListener()` registered on the `CallSession` from `onSuccess` (with lifecycle owner)
255
- - [ ] `ButtonClickListener()` registered for the leave button
256
- - [ ] `CometChatOngoingCallService.launch(this)` in `onSessionJoined`
257
- - [ ] `CometChatOngoingCallService.abort(this)` in EVERY termination path
258
- - [ ] Manifest has `FOREGROUND_SERVICE_MICROPHONE` + `FOREGROUND_SERVICE_CAMERA` (Android 14+)
259
- - [ ] `<service android:name="com.cometchat.calls.services.CometChatOngoingCallService" android:foregroundServiceType="microphone|camera" />` in manifest
260
- - [ ] Runtime permission request for `CAMERA`, `RECORD_AUDIO`, `POST_NOTIFICATIONS`
261
- - [ ] App Links intent-filter for `/meet/*`
262
- - [ ] **Standalone session-only:** no `com.cometchat:chat-sdk-android` dependency — Calls SDK alone
263
- - [ ] **Additive (chat + calls):** dual-SDK contract preserved
264
- - [ ] Real-device smoke: rotation doesn't double-join, leave clears the foreground notification
265
-
266
- ---
267
-
268
- ## Pointers
269
-
270
- - `cometchat-react-calls/references/call-session.md` — cross-platform architecture
271
- - `cometchat-android-v5-calls/SKILL.md` — Android V5 architecture
272
- - `cometchat-android-v5-calls/references/share-invite.md` — App Links config
273
- - Upstream Android sample — `calls-sdk-android-5/samples/sample-app/src/main/kotlin/com/cometchat/samplecalls/ui/activity/CallActivity.kt`
274
- - Canonical docs: https://www.cometchat.com/docs/calls/android/join-session
@@ -1,150 +0,0 @@
1
- ---
2
- name: custom-ui
3
- description: Build custom call UI — custom control panel, custom participant list, layout customization. Use when hiding default controls and building your own call interface. Triggers on "custom control panel", "custom participant list", "custom UI", "hideControlPanel", "custom call interface".
4
- inclusion: manual
5
- ---
6
-
7
- # CometChat Calls SDK v5 — Custom UI
8
-
9
- ## Overview
10
-
11
- Build fully custom call interfaces by hiding the default SDK controls and implementing your own using `CallSession` actions and event listeners.
12
-
13
- ## Key Imports
14
-
15
- ```kotlin
16
- import com.cometchat.calls.core.CallSession
17
- import com.cometchat.calls.core.CometChatCalls
18
- import com.cometchat.calls.listeners.MediaEventsListener
19
- import com.cometchat.calls.listeners.SessionStatusListener
20
- import com.cometchat.calls.listeners.ParticipantEventListener
21
- import com.cometchat.calls.model.*
22
- ```
23
-
24
- ## Implementation
25
-
26
- ### 1. Hide Default Controls
27
-
28
- ```kotlin
29
- val sessionSettings = CometChatCalls.SessionSettingsBuilder()
30
- .hideControlPanel(true) // hide entire bottom bar
31
- .hideHeaderPanel(true) // hide top header
32
- // Or hide individual buttons:
33
- // .hideToggleAudioButton(true)
34
- // .hideToggleVideoButton(true)
35
- // .hideParticipantListButton(true)
36
- .build()
37
- ```
38
-
39
- ### 2. Custom Control Panel
40
-
41
- Create your own buttons and wire them to `CallSession` actions:
42
-
43
- ```kotlin
44
- val callSession = CallSession.getInstance()
45
- var isAudioMuted = false
46
- var isVideoPaused = false
47
-
48
- btnMute.setOnClickListener {
49
- if (isAudioMuted) callSession.unmuteAudio() else callSession.muteAudio()
50
- }
51
- btnVideo.setOnClickListener {
52
- if (isVideoPaused) callSession.resumeVideo() else callSession.pauseVideo()
53
- }
54
- btnSwitchCamera.setOnClickListener { callSession.switchCamera() }
55
- btnEndCall.setOnClickListener {
56
- callSession.leaveSession()
57
- finish()
58
- }
59
- ```
60
-
61
- ### 3. Sync UI with Media Events
62
-
63
- ```kotlin
64
- callSession.addMediaEventsListener(this, object : MediaEventsListener() {
65
- override fun onAudioMuted() {
66
- runOnUiThread { isAudioMuted = true; btnMute.setImageResource(R.drawable.ic_mic_off) }
67
- }
68
- override fun onAudioUnMuted() {
69
- runOnUiThread { isAudioMuted = false; btnMute.setImageResource(R.drawable.ic_mic_on) }
70
- }
71
- override fun onVideoPaused() {
72
- runOnUiThread { isVideoPaused = true; btnVideo.setImageResource(R.drawable.ic_video_off) }
73
- }
74
- override fun onVideoResumed() {
75
- runOnUiThread { isVideoPaused = false; btnVideo.setImageResource(R.drawable.ic_video_on) }
76
- }
77
- // ... other overrides
78
- })
79
- ```
80
-
81
- ### 4. Custom Participant List
82
-
83
- Hide default and build with RecyclerView:
84
-
85
- ```kotlin
86
- // Hide default
87
- .hideParticipantListButton(true)
88
-
89
- // Listen for participant updates
90
- callSession.addParticipantEventListener(this, object : ParticipantEventListener() {
91
- override fun onParticipantListChanged(participants: List<Participant>) {
92
- runOnUiThread { adapter.updateParticipants(participants) }
93
- }
94
- // ... other overrides
95
- })
96
-
97
- // Participant actions from custom UI
98
- adapter.onMuteClick = { participant -> callSession.muteParticipant(participant.uid) }
99
- adapter.onPauseVideoClick = { participant -> callSession.pauseParticipantVideo(participant.uid) }
100
- adapter.onPinClick = { participant ->
101
- if (participant.isPinned) callSession.unpinParticipant()
102
- else callSession.pinParticipant(participant.uid) // per official docs (calls/android/participant-management)
103
- }
104
- ```
105
-
106
- ### 5. Layout Control
107
-
108
- ```kotlin
109
- // Change layout programmatically
110
- callSession.setLayout(LayoutType.TILE)
111
- callSession.setLayout(LayoutType.SPOTLIGHT)
112
-
113
- // Listen for layout changes
114
- callSession.addLayoutListener(this, object : LayoutListener() {
115
- override fun onCallLayoutChanged(layoutType: LayoutType) { /* update UI */ }
116
- override fun onParticipantListVisible() {}
117
- override fun onParticipantListHidden() {}
118
- override fun onPictureInPictureLayoutEnabled() {}
119
- override fun onPictureInPictureLayoutDisabled() {}
120
- })
121
- ```
122
-
123
- ### Available CallSession Actions
124
-
125
- | Action | Method |
126
- |--------|--------|
127
- | Mute/unmute audio | `muteAudio()`, `unmuteAudio()` |
128
- | Pause/resume video | `pauseVideo()`, `resumeVideo()` |
129
- | Switch camera | `switchCamera()` |
130
- | Change audio output | `setAudioMode(AudioMode)` |
131
- | Change layout | `setLayout(LayoutType)` |
132
- | Start/stop recording | `startRecording()`, `stopRecording()` |
133
- | Pin/unpin participant | `pinParticipant(uid)`, `unpinParticipant()` |
134
- | Mute participant | `muteParticipant(uid)` |
135
- | Pause participant video | `pauseParticipantVideo(uid)` |
136
- | Leave session | `leaveSession()` |
137
- | Enable/disable PiP | `enablePictureInPictureLayout()`, `disablePictureInPictureLayout()` |
138
- | Set chat badge count | `setChatButtonUnreadCount(count)` |
139
-
140
- ## Gotchas
141
-
142
- - Always use `MediaEventsListener` to sync your custom UI with actual state
143
- - `runOnUiThread {}` is required for UI updates from listener callbacks
144
- - `hideControlPanel(true)` hides the entire bottom bar — individual hide methods are ignored
145
- - The call view container still renders video tiles even with controls hidden
146
- - Use `SessionStatusListener` to handle session end and navigate away
147
-
148
- ## Sample App Reference
149
-
150
- - `CallActivity.kt` — Default UI with `SessionStatusListener` and `ButtonClickListener`
@@ -1,123 +0,0 @@
1
- ---
2
- name: event-listeners
3
- description: Register all five call event listeners — SessionStatusListener, ParticipantEventListener, MediaEventsListener, ButtonClickListener, LayoutListener. Use when handling call events, session status, participant changes, media state, button clicks, or layout changes. Triggers on "event listener", "session listener", "participant listener", "media listener", "button click", "layout listener".
4
- inclusion: manual
5
- ---
6
-
7
- # CometChat Calls SDK v5 — Event Listeners
8
-
9
- ## Overview
10
-
11
- Five lifecycle-aware listeners monitor call events. All are registered on `CallSession.getInstance()` and auto-removed when the `LifecycleOwner` (Activity/Fragment) is destroyed.
12
-
13
- ## Key Imports
14
-
15
- ```kotlin
16
- import com.cometchat.calls.core.CallSession
17
- import com.cometchat.calls.listeners.SessionStatusListener
18
- import com.cometchat.calls.listeners.ParticipantEventListener
19
- import com.cometchat.calls.listeners.MediaEventsListener
20
- import com.cometchat.calls.listeners.ButtonClickListener
21
- import com.cometchat.calls.listeners.LayoutListener
22
- import com.cometchat.calls.model.Participant
23
- import com.cometchat.calls.model.AudioMode
24
- import com.cometchat.calls.model.CameraFacing
25
- import com.cometchat.calls.model.LayoutType
26
- ```
27
-
28
- ## Implementation
29
-
30
- ### 1. SessionStatusListener
31
-
32
- ```kotlin
33
- val callSession = CallSession.getInstance()
34
-
35
- callSession.addSessionStatusListener(this, object : SessionStatusListener() {
36
- override fun onSessionJoined() { /* connected */ }
37
- override fun onSessionLeft() { finish() }
38
- override fun onSessionTimedOut() { finish() }
39
- override fun onConnectionLost() { /* show reconnecting UI */ }
40
- override fun onConnectionRestored() { /* hide reconnecting UI */ }
41
- override fun onConnectionClosed() { finish() }
42
- })
43
- ```
44
-
45
- ### 2. ParticipantEventListener
46
-
47
- ```kotlin
48
- callSession.addParticipantEventListener(this, object : ParticipantEventListener() {
49
- override fun onParticipantJoined(participant: Participant) {}
50
- override fun onParticipantLeft(participant: Participant) {}
51
- override fun onParticipantListChanged(participants: List<Participant>) {}
52
- override fun onParticipantAudioMuted(participant: Participant) {}
53
- override fun onParticipantAudioUnmuted(participant: Participant) {}
54
- override fun onParticipantVideoPaused(participant: Participant) {}
55
- override fun onParticipantVideoResumed(participant: Participant) {}
56
- override fun onParticipantHandRaised(participant: Participant) {}
57
- override fun onParticipantHandLowered(participant: Participant) {}
58
- override fun onParticipantStartedScreenShare(participant: Participant) {}
59
- override fun onParticipantStoppedScreenShare(participant: Participant) {}
60
- override fun onParticipantStartedRecording(participant: Participant) {}
61
- override fun onParticipantStoppedRecording(participant: Participant) {}
62
- override fun onDominantSpeakerChanged(participant: Participant) {}
63
- })
64
- ```
65
-
66
- ### 3. MediaEventsListener
67
-
68
- ```kotlin
69
- callSession.addMediaEventsListener(this, object : MediaEventsListener() {
70
- override fun onAudioMuted() {}
71
- override fun onAudioUnMuted() {}
72
- override fun onVideoPaused() {}
73
- override fun onVideoResumed() {}
74
- override fun onRecordingStarted() {}
75
- override fun onRecordingStopped() {}
76
- override fun onAudioModeChanged(audioMode: AudioMode) {}
77
- override fun onCameraFacingChanged(facing: CameraFacing) {}
78
- })
79
- // Screen-share is observed on ParticipantEventListener (onParticipantStartedScreenShare /
80
- // onParticipantStoppedScreenShare above) — NOT MediaEventsListener.
81
- ```
82
-
83
- ### 4. ButtonClickListener
84
-
85
- ```kotlin
86
- callSession.addButtonClickListener(this, object : ButtonClickListener() {
87
- override fun onLeaveSessionButtonClicked() {}
88
- override fun onToggleAudioButtonClicked() {}
89
- override fun onToggleVideoButtonClicked() {}
90
- override fun onSwitchCameraButtonClicked() {}
91
- override fun onRaiseHandButtonClicked() {}
92
- override fun onShareInviteButtonClicked() {}
93
- override fun onChangeLayoutButtonClicked() {}
94
- override fun onParticipantListButtonClicked() {}
95
- override fun onChatButtonClicked() {}
96
- override fun onRecordingToggleButtonClicked() {}
97
- })
98
- ```
99
-
100
- ### 5. LayoutListener
101
-
102
- ```kotlin
103
- callSession.addLayoutListener(this, object : LayoutListener() {
104
- override fun onCallLayoutChanged(layoutType: LayoutType) {}
105
- override fun onParticipantListVisible() {}
106
- override fun onParticipantListHidden() {}
107
- override fun onPictureInPictureLayoutEnabled() {}
108
- override fun onPictureInPictureLayoutDisabled() {}
109
- })
110
- ```
111
-
112
- ## Gotchas
113
-
114
- - All listeners are **lifecycle-aware** — no manual removal needed
115
- - Pass `this` (Activity/Fragment) as the first argument for lifecycle binding
116
- - Register listeners **after** `joinSession()` succeeds (in the `onSuccess` callback)
117
- - Button click events fire **before** the SDK's default action
118
- - `Participant` object has: `uid`, `name`, `avatar`, `isAudioMuted`, `isVideoPaused`, `isPresenting`, `isPinned`, `raisedHandTimestamp`
119
- - Use `runOnUiThread {}` for UI updates inside listener callbacks
120
-
121
- ## Sample App Reference
122
-
123
- - `CallActivity.kt` — `setupCallListeners()` registers `SessionStatusListener` and `ButtonClickListener`