@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,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`