@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,197 +0,0 @@
1
- # Adding calls to an existing chat integration (Android V5)
2
-
3
- You have `chatuikit-android` (V5 cohort) working. Adding calls = `calls-sdk-android` + ConnectionService + foreground service permissions.
4
-
5
- **Read first:** `cometchat-android-v5-calls/SKILL.md` — seven hard rules (init order, ConnectionService, foreground service type, hangup teardown).
6
-
7
- ---
8
-
9
- ## Step 1 — Install Calls SDK from Cloudsmith
10
-
11
- ```kotlin
12
- // settings.gradle.kts (or settings.gradle)
13
- dependencyResolutionManagement {
14
- repositories {
15
- maven { url = uri("https://dl.cloudsmith.io/public/cometchat/cometchat/maven/") }
16
- google()
17
- mavenCentral()
18
- }
19
- }
20
-
21
- // app/build.gradle.kts
22
- dependencies {
23
- implementation("com.cometchat:calls-sdk-android:5.+")
24
- // existing chat-uikit dependency stays
25
- }
26
- ```
27
-
28
- ```bash
29
- ./gradlew :app:dependencies | grep calls-sdk-android
30
- ```
31
-
32
- Should resolve to `5.x.x`.
33
-
34
- ---
35
-
36
- ## Step 2 — Permissions + manifest
37
-
38
- ```xml
39
- <!-- AndroidManifest.xml -->
40
- <uses-permission android:name="android.permission.RECORD_AUDIO"/>
41
- <uses-permission android:name="android.permission.CAMERA"/>
42
- <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
43
- <uses-permission android:name="android.permission.BLUETOOTH"/>
44
- <uses-permission android:name="android.permission.BLUETOOTH_CONNECT"/>
45
- <uses-permission android:name="android.permission.MANAGE_OWN_CALLS"/>
46
- <uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
47
- <uses-permission android:name="android.permission.FOREGROUND_SERVICE_MICROPHONE"/>
48
- <uses-permission android:name="android.permission.FOREGROUND_SERVICE_CAMERA"/>
49
-
50
- <application ...>
51
- <service
52
- android:name=".AppConnectionService"
53
- android:permission="android.permission.BIND_TELECOM_CONNECTION_SERVICE"
54
- android:foregroundServiceType="microphone|camera"
55
- android:exported="true">
56
- <intent-filter>
57
- <action android:name="android.telecom.ConnectionService"/>
58
- </intent-filter>
59
- </service>
60
- </application>
61
- ```
62
-
63
- `foregroundServiceType="microphone|camera"` is mandatory on Android 14+.
64
-
65
- ---
66
-
67
- ## Step 3 — Init order: chat → calls
68
-
69
- In your existing `Application.onCreate` or your init activity:
70
-
71
- ```kotlin
72
- import com.cometchat.calls.core.CometChatCalls
73
- import com.cometchat.calls.core.CallAppSettings
74
-
75
- // Existing chat init
76
- CometChatUIKit.init(this, uikitSettings, object : CometChat.CallbackListener<String>() {
77
- override fun onSuccess(s: String) {
78
- // NEW: Calls init AFTER chat init
79
- val callsSettings = CallAppSettings(appId = APP_ID, region = REGION)
80
- CometChatCalls.init(callsSettings, object : CometChatCalls.CallbackListener<String>() {
81
- override fun onSuccess(s: String) { /* both initialized */ }
82
- override fun onError(e: CometChatException) { Log.e("App", "Calls init failed", e) }
83
- })
84
- }
85
-
86
- override fun onError(e: CometChatException) {}
87
- })
88
- ```
89
-
90
- ---
91
-
92
- ## Step 4 — Login both SDKs
93
-
94
- After your existing login flow:
95
-
96
- ```kotlin
97
- CometChat.login(uid, authKey, object : CometChat.CallbackListener<User>() {
98
- override fun onSuccess(user: User) {
99
- // Calls SDK login uses the SAME uid + authKey (the chat `User` has no
100
- // `authToken` accessor — if you need a token it's the static
101
- // `CometChat.getUserAuthToken()`). Callback type is CallUser, not User.
102
- CometChatCalls.login(uid, authKey, object : CometChatCalls.CallbackListener<CallUser>() {
103
- override fun onSuccess(callUser: CallUser) { /* calls SDK ready */ }
104
- override fun onError(e: com.cometchat.calls.exceptions.CometChatException) {}
105
- })
106
- }
107
- override fun onError(e: CometChatException) {}
108
- })
109
- ```
110
-
111
- ---
112
-
113
- ## Step 5 — IncomingCall via ConnectionService
114
-
115
- Implement `AppConnectionService` (see `cometchat-android-v5-calls/SKILL.md` rule 4). The ConnectionService receives FCM data-message → calls `addNewIncomingCall` → OS shows incoming-call UI.
116
-
117
- Plus an `IncomingCallActivity` that handles user action (accept/reject) and routes to your chat UI's call surface:
118
-
119
- ```kotlin
120
- class IncomingCallActivity : AppCompatActivity() {
121
- override fun onCreate(savedInstanceState: Bundle?) {
122
- super.onCreate(savedInstanceState)
123
- // Show over lock screen
124
- setShowWhenLocked(true)
125
- setTurnScreenOn(true)
126
- // ... bind your incoming-call layout
127
- }
128
- }
129
- ```
130
-
131
- ---
132
-
133
- ## Step 6 — FCM token registration
134
-
135
- Add a `FirebaseMessagingService` subclass and POST tokens to your server (see `cometchat-android-v5-calls/references/server-fcm-voip.md`):
136
-
137
- ```kotlin
138
- class VoipMessagingService : FirebaseMessagingService() {
139
- override fun onNewToken(token: String) {
140
- // POST to your server, keyed to current user UID
141
- api.registerCallToken(currentUid, "android-fcm", token)
142
- }
143
-
144
- override fun onMessageReceived(message: RemoteMessage) {
145
- if (message.data["type"] != "incoming_call") return
146
- // Hand off to ConnectionService — see V5 server-fcm-voip reference
147
- }
148
- }
149
- ```
150
-
151
- Register in manifest:
152
- ```xml
153
- <service
154
- android:name=".VoipMessagingService"
155
- android:exported="false">
156
- <intent-filter>
157
- <action android:name="com.google.firebase.MESSAGING_EVENT" />
158
- </intent-filter>
159
- </service>
160
- ```
161
-
162
- ---
163
-
164
- ## Step 7 — Hangup teardown
165
-
166
- ```kotlin
167
- fun endCall(sessionId: String) {
168
- CometChatCalls.endSession() // static teardown (there is NO static CometChatCalls.leaveSession() — leaveSession is instance-only on CallSession.getInstance())
169
- CometChat.endCall(sessionId, object : CometChat.CallbackListener<Call>() { /* ... */ })
170
- // ConnectionService disconnect
171
- activeConnection?.setDisconnected(DisconnectCause(DisconnectCause.LOCAL))
172
- activeConnection?.destroy()
173
- }
174
- ```
175
-
176
- ---
177
-
178
- ## Verification checklist
179
-
180
- - [ ] Cloudsmith Maven repo added
181
- - [ ] `calls-sdk-android:5.+` in app/build.gradle
182
- - [ ] Manifest permissions: RECORD_AUDIO, CAMERA, MANAGE_OWN_CALLS, FOREGROUND_SERVICE_MICROPHONE/CAMERA
183
- - [ ] AppConnectionService declared with `foregroundServiceType` + permission
184
- - [ ] Calls init runs AFTER chat init's onSuccess
185
- - [ ] Calls login runs AFTER chat login's onSuccess
186
- - [ ] FCM token registered + POSTed to server
187
- - [ ] Hangup tears down all 3: leaveSession, endCall, ConnectionService disconnect
188
- - [ ] Real-device smoke: app killed → caller dials → recipient phone rings on lock screen
189
- - [ ] Run `cometchat verify --calls` — should pass
190
-
191
- ---
192
-
193
- ## Pointers
194
-
195
- - `cometchat-react-calls/references/add-calls-to-existing-chat.md` — canonical
196
- - `cometchat-android-v5-calls/SKILL.md` — seven hard rules
197
- - `cometchat-android-v5-calls/references/server-fcm-voip.md` — server-side FCM
@@ -1,91 +0,0 @@
1
- ---
2
- name: audio-controls
3
- description: Control audio during calls — mute/unmute microphone, switch audio output device (speaker, earpiece, bluetooth). Use when implementing audio toggle, audio mode switching, or custom mute buttons. Triggers on "mute audio", "unmute", "audio mode", "speaker", "earpiece", "bluetooth audio".
4
- inclusion: manual
5
- ---
6
-
7
- # CometChat Calls SDK v5 — Audio Controls
8
-
9
- ## Overview
10
-
11
- Programmatically control the local microphone (mute/unmute) and audio output device (speaker, earpiece, Bluetooth, headphones) during an active call.
12
-
13
- ## Key Imports
14
-
15
- ```kotlin
16
- import com.cometchat.calls.core.CallSession
17
- import com.cometchat.calls.model.AudioMode
18
- import com.cometchat.calls.listeners.MediaEventsListener
19
- ```
20
-
21
- ## Implementation
22
-
23
- ### Mute / Unmute
24
-
25
- ```kotlin
26
- val callSession = CallSession.getInstance()
27
-
28
- callSession.muteAudio() // mute microphone
29
- callSession.unmuteAudio() // unmute microphone
30
- ```
31
-
32
- ### Switch Audio Output
33
-
34
- ```kotlin
35
- callSession.setAudioMode(AudioMode.SPEAKER) // loudspeaker
36
- callSession.setAudioMode(AudioMode.EARPIECE) // phone earpiece
37
- callSession.setAudioMode(AudioMode.BLUETOOTH) // connected Bluetooth device
38
- callSession.setAudioMode(AudioMode.HEADPHONES) // wired headphones
39
- ```
40
-
41
- ### Listen for Audio Events
42
-
43
- ```kotlin
44
- callSession.addMediaEventsListener(this, object : MediaEventsListener() {
45
- override fun onAudioMuted() {
46
- // Update mute button to "muted" state
47
- }
48
- override fun onAudioUnMuted() {
49
- // Update mute button to "unmuted" state
50
- }
51
- override fun onAudioModeChanged(audioMode: AudioMode) {
52
- when (audioMode) {
53
- AudioMode.SPEAKER -> { /* update icon */ }
54
- AudioMode.EARPIECE -> { /* update icon */ }
55
- AudioMode.BLUETOOTH -> { /* update icon */ }
56
- AudioMode.HEADPHONES -> { /* update icon */ }
57
- }
58
- }
59
- // ... other required overrides
60
- override fun onVideoPaused() {}
61
- override fun onVideoResumed() {}
62
- override fun onRecordingStarted() {}
63
- override fun onRecordingStopped() {}
64
- override fun onCameraFacingChanged(facing: CameraFacing) {}
65
- })
66
- // Screen-share is observed via ParticipantEventListener.onParticipantStartedScreenShare /
67
- // onParticipantStoppedScreenShare — NOT MediaEventsListener.
68
- ```
69
-
70
- ### Initial Audio Settings (Pre-Session)
71
-
72
- ```kotlin
73
- val sessionSettings = CometChatCalls.SessionSettingsBuilder()
74
- .startAudioMuted(true) // join muted
75
- .setAudioMode(AudioMode.SPEAKER) // initial output device
76
- .hideToggleAudioButton(false) // show mute button
77
- .hideAudioModeButton(false) // show audio mode button
78
- .build()
79
- ```
80
-
81
- ## Gotchas
82
-
83
- - `muteAudio()` / `unmuteAudio()` only work during an active session
84
- - Audio mode changes trigger `onAudioModeChanged()` on `MediaEventsListener`
85
- - `AudioMode` enum: `SPEAKER`, `EARPIECE`, `BLUETOOTH`, `HEADPHONES`
86
- - For voice calls, default to `AudioMode.EARPIECE`; for video calls, default to `AudioMode.SPEAKER`
87
- - Bluetooth audio mode only works when a Bluetooth device is connected
88
-
89
- ## Sample App Reference
90
-
91
- - `CallActivity.kt` — Sets `AudioMode.EARPIECE` for voice calls, `AudioMode.SPEAKER` for video calls
@@ -1,168 +0,0 @@
1
- ---
2
- name: background-handling
3
- description: Keep calls alive in background using CometChatOngoingCallService foreground service. Use when handling home button press during calls, ongoing call notifications, or preventing call termination. Triggers on "background handling", "foreground service", "ongoing call", "CometChatOngoingCallService", "keep call alive".
4
- inclusion: manual
5
- ---
6
-
7
- # CometChat Calls SDK v5 — Background Handling
8
-
9
- ## Overview
10
-
11
- `CometChatOngoingCallService` is a foreground service that keeps calls alive when users press HOME or switch apps. Shows an ongoing notification with tap-to-return and hangup actions.
12
-
13
- ## Prerequisites
14
-
15
- - Active call session
16
- - Foreground service permissions in manifest
17
-
18
- ## Key Imports
19
-
20
- ```kotlin
21
- import com.cometchat.calls.services.CometChatOngoingCallService
22
- import com.cometchat.calls.utils.OngoingNotification
23
- import com.cometchat.calls.core.CallSession
24
- import com.cometchat.calls.listeners.SessionStatusListener
25
- import com.cometchat.calls.listeners.ButtonClickListener
26
- ```
27
-
28
- ## Implementation
29
-
30
- ### 1. Manifest Permissions
31
-
32
- ```xml
33
- <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
34
- <uses-permission android:name="android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK" />
35
- <uses-permission android:name="android.permission.FOREGROUND_SERVICE_MICROPHONE" />
36
- <uses-permission android:name="android.permission.FOREGROUND_SERVICE_CAMERA" />
37
- <uses-permission android:name="android.permission.FOREGROUND_SERVICE_MEDIA_PROJECTION" />
38
- <uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
39
- ```
40
-
41
- ### 2. Start/Stop Service
42
-
43
- ```kotlin
44
- callSession.addSessionStatusListener(this, object : SessionStatusListener() {
45
- override fun onSessionJoined() {
46
- CometChatOngoingCallService.launch(this@CallActivity)
47
- }
48
- override fun onSessionLeft() {
49
- CometChatOngoingCallService.abort(this@CallActivity)
50
- finish()
51
- }
52
- override fun onConnectionClosed() {
53
- CometChatOngoingCallService.abort(this@CallActivity)
54
- finish()
55
- }
56
- override fun onSessionTimedOut() {
57
- CometChatOngoingCallService.abort(this@CallActivity)
58
- finish()
59
- }
60
- override fun onConnectionLost() {}
61
- override fun onConnectionRestored() {}
62
- })
63
- ```
64
-
65
- ### 3. Handle Leave Button
66
-
67
- ```kotlin
68
- callSession.addButtonClickListener(this, object : ButtonClickListener() {
69
- override fun onLeaveSessionButtonClicked() {
70
- endCall()
71
- }
72
- })
73
- ```
74
-
75
- ### 4. Handle Remote Call End
76
-
77
- Register a `CometChat.CallListener` to detect when the remote party ends the call, then clean up the foreground service:
78
-
79
- ```kotlin
80
- CometChat.addCallListener(LISTENER_ID, object : CometChat.CallListener() {
81
- override fun onCallEndedMessageReceived(call: Call?) {
82
- val session = CallSession.getInstance()
83
- if (session.isSessionActive) {
84
- session.leaveSession()
85
- }
86
- CometChatOngoingCallService.abort(this@CallActivity)
87
- runOnUiThread { finish() }
88
- }
89
- override fun onIncomingCallReceived(call: Call?) {}
90
- override fun onOutgoingCallAccepted(call: Call?) {}
91
- override fun onOutgoingCallRejected(call: Call?) {}
92
- override fun onIncomingCallCancelled(call: Call?) {}
93
- })
94
- ```
95
-
96
- ### 5. Always Stop in onDestroy
97
-
98
- ```kotlin
99
- override fun onDestroy() {
100
- super.onDestroy()
101
- CometChat.removeCallListener(LISTENER_ID)
102
- CometChatOngoingCallService.abort(this)
103
- }
104
- ```
105
-
106
- ### 6. Custom Notification (Optional)
107
-
108
- ```kotlin
109
- private fun buildCustomNotification(): Notification {
110
- val channelId = "CometChat_Call_Ongoing_Conference" // must use this ID
111
- val intent = Intent(this, CallActivity::class.java).apply {
112
- flags = Intent.FLAG_ACTIVITY_CLEAR_TOP or Intent.FLAG_ACTIVITY_SINGLE_TOP
113
- }
114
- val pendingIntent = PendingIntent.getActivity(
115
- this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE
116
- )
117
- return NotificationCompat.Builder(this, channelId)
118
- .setSmallIcon(R.drawable.ic_call)
119
- .setContentTitle("Ongoing Call")
120
- .setContentText("Tap to return to your call")
121
- .setPriority(NotificationCompat.PRIORITY_HIGH)
122
- .setContentIntent(pendingIntent)
123
- .setOngoing(true)
124
- .setVisibility(NotificationCompat.VISIBILITY_PUBLIC)
125
- .build()
126
- }
127
-
128
- // Set before launching service
129
- OngoingNotification.buildOngoingConferenceNotification(buildCustomNotification())
130
- CometChatOngoingCallService.launch(this)
131
- ```
132
-
133
- ### 7. VoIP Integration — Additional Cleanup (Optional)
134
-
135
- When using background handling with VoIP calling (ConnectionService + TelecomManager), also disconnect the `CallConnection` and cancel any VoIP notifications on every terminal state:
136
-
137
- ```kotlin
138
- // In each terminal callback (onSessionLeft, onSessionTimedOut, onConnectionClosed, onCallEndedMessageReceived):
139
- CometChatOngoingCallService.abort(this@CallActivity)
140
- CallConnectionHolder.endCall()
141
- CallNotificationManager.cancelNotification(this@CallActivity)
142
- finish()
143
- ```
144
-
145
- See the `sample-app-voip` CallActivity for the full VoIP-integrated pattern.
146
-
147
- ## API Reference
148
-
149
- | Method | Description |
150
- |--------|-------------|
151
- | `CometChatOngoingCallService.launch(context)` | Start foreground service |
152
- | `CometChatOngoingCallService.abort(context)` | Stop foreground service |
153
- | `OngoingNotification.buildOngoingConferenceNotification(notification)` | Set custom notification (call before `launch()`) |
154
-
155
- ## Gotchas
156
-
157
- - The notification channel ID **must** be `"CometChat_Call_Ongoing_Conference"`
158
- - Always call `abort()` in `onDestroy()` to prevent leaked services
159
- - Always remove `CometChat.CallListener` in `onDestroy()` to prevent leaks
160
- - This is for keeping **active** calls alive — for receiving calls when app is killed, use VoIP Calling
161
- - Call `launch()` only after `onSessionJoined()` — not before joining
162
- - Custom notification must be set **before** calling `launch()`
163
- - When using VoIP (ConnectionService), also call `CallConnectionHolder.endCall()` in every terminal state to properly disconnect the Telecom connection
164
-
165
- ## Sample App Reference
166
-
167
- - `sample-app-ringing` — `CallActivity.kt` — basic foreground service pattern with `launch()` in `onSessionJoined()`, `abort()` in `onSessionLeft()` and `onDestroy()`
168
- - `sample-app-voip` — `CallActivity.kt` — full VoIP-integrated pattern with foreground service + CallConnection cleanup + notification cancellation on every terminal state
@@ -1,131 +0,0 @@
1
- # Call layouts on Android V5 (Views)
2
-
3
- Same three layouts (TILE/SIDEBAR/SPOTLIGHT). Android V5 uses Java/Kotlin builders + `MaterialButtonToggleGroup` for the switcher (Material Components for Android).
4
-
5
- **Canonical docs:** https://www.cometchat.com/docs/calls/android/call-layouts
6
- **Read first:** `cometchat-react-calls/references/call-layouts.md` — layout matrix + when to lock.
7
-
8
- ---
9
-
10
- ## SDK API
11
-
12
- ```kotlin
13
- import com.cometchat.calls.core.CometChatCalls
14
- import com.cometchat.calls.listeners.LayoutListener
15
- import com.cometchat.calls.model.SessionType
16
- import com.cometchat.calls.model.LayoutType
17
-
18
- val settings = CometChatCalls.SessionSettingsBuilder()
19
- .setSessionType(SessionType.VIDEO)
20
- .setLayout(LayoutType.TILE) // TILE | SIDEBAR | SPOTLIGHT
21
- .hideChangeLayoutButton(false)
22
- .build()
23
-
24
- // There is no static mid-call setter in v5. Layout is set at join via
25
- // SessionSettingsBuilder.setLayout(...); to change it mid-call, re-join the
26
- // session with a new SessionSettingsBuilder. Layout CHANGES are observed
27
- // via LayoutListener.onCallLayoutChanged(layoutType) — register on the
28
- // CallSession instance returned from joinSession's onSuccess callback.
29
- callSession.addLayoutListener(this, object : LayoutListener() {
30
- override fun onCallLayoutChanged(layoutType: LayoutType) {
31
- activity.runOnUiThread {
32
- // Update segmented button state
33
- }
34
- }
35
- })
36
- ```
37
-
38
- ---
39
-
40
- ## XML — MaterialButtonToggleGroup
41
-
42
- ```xml
43
- <com.google.android.material.button.MaterialButtonToggleGroup
44
- android:id="@+id/layoutToggle"
45
- android:layout_width="wrap_content"
46
- android:layout_height="wrap_content"
47
- app:singleSelection="true"
48
- app:selectionRequired="true"
49
- android:contentDescription="@string/call_layout">
50
-
51
- <com.google.android.material.button.MaterialButton
52
- android:id="@+id/layoutTile"
53
- style="@style/Widget.Material3.Button.OutlinedButton"
54
- android:text="@string/layout_tile" />
55
-
56
- <com.google.android.material.button.MaterialButton
57
- android:id="@+id/layoutSidebar"
58
- style="@style/Widget.Material3.Button.OutlinedButton"
59
- android:text="@string/layout_sidebar" />
60
-
61
- <com.google.android.material.button.MaterialButton
62
- android:id="@+id/layoutSpotlight"
63
- style="@style/Widget.Material3.Button.OutlinedButton"
64
- android:text="@string/layout_spotlight" />
65
- </com.google.android.material.button.MaterialButtonToggleGroup>
66
- ```
67
-
68
- ---
69
-
70
- ## Wire-up in Activity
71
-
72
- ```kotlin
73
- binding.layoutToggle.addOnButtonCheckedListener { _, checkedId, isChecked ->
74
- if (!isChecked) return@addOnButtonCheckedListener
75
-
76
- val layout = when (checkedId) {
77
- R.id.layoutTile -> LayoutType.TILE
78
- R.id.layoutSidebar -> LayoutType.SIDEBAR
79
- R.id.layoutSpotlight -> LayoutType.SPOTLIGHT
80
- else -> return@addOnButtonCheckedListener
81
- }
82
- // v5 has no static mid-call setter — re-join the session with new settings
83
- // to apply the chosen layout.
84
- val settings = CometChatCalls.SessionSettingsBuilder()
85
- .setSessionType(SessionType.VIDEO)
86
- .setLayout(layout)
87
- .build()
88
- // CometChatCalls.joinSession(sessionId, callToken, settings, ...) — see join-session.md
89
- }
90
-
91
- // Sync from kit's switcher — observed via LayoutListener.onCallLayoutChanged
92
- override fun onCallLayoutChanged(layoutType: LayoutType) {
93
- runOnUiThread {
94
- val id = when (layoutType) {
95
- LayoutType.TILE -> R.id.layoutTile
96
- LayoutType.SIDEBAR -> R.id.layoutSidebar
97
- LayoutType.SPOTLIGHT -> R.id.layoutSpotlight
98
- else -> return@runOnUiThread
99
- }
100
- binding.layoutToggle.check(id)
101
- }
102
- }
103
- ```
104
-
105
- ---
106
-
107
- ## Anti-patterns
108
-
109
- Web sister rules apply, plus Android-specific:
110
-
111
- 1. **`Spinner` instead of `MaterialButtonToggleGroup`.** Spinner hides options; toggle group is the radio-group native pattern in Material.
112
- 2. **`onCheckedChange` without `isChecked` guard.** Fires twice (once for unchecked, once for checked) — spurious `setLayout` calls.
113
- 3. **Forgetting `runOnUiThread` in the listener.** Crash on view updates from background thread.
114
-
115
- ---
116
-
117
- ## Verification checklist
118
-
119
- - [ ] Initial layout via `setLayout(LayoutType.X)` on `SessionSettingsBuilder`
120
- - [ ] `MaterialButtonToggleGroup` with `singleSelection="true"`
121
- - [ ] `addOnButtonCheckedListener` guards on `isChecked`
122
- - [ ] `onCallLayoutChanged` updates toggle group on UI thread
123
- - [ ] Real-device smoke: switcher cycles all 3, kit's switcher syncs custom UI
124
-
125
- ---
126
-
127
- ## Pointers
128
-
129
- - `cometchat-react-calls/references/call-layouts.md` — sister
130
- - `cometchat-android-v5-calls` SKILL.md
131
- - Canonical docs: https://www.cometchat.com/docs/calls/android/call-layouts
@@ -1,113 +0,0 @@
1
- ---
2
- name: call-logs
3
- description: Fetch call history using CallLogRequest with pagination and filters. Use when displaying call logs, filtering by type/status/recording, or accessing recordings. Triggers on "call logs", "call history", "CallLogRequest", "fetch recordings".
4
- inclusion: manual
5
- ---
6
-
7
- # CometChat Calls SDK v5 — Call Logs
8
-
9
- ## Overview
10
-
11
- Retrieve call history using `CallLogRequest` with pagination, filtering by type, status, direction, recordings, and specific users/groups.
12
-
13
- ## Key Imports
14
-
15
- ```kotlin
16
- import com.cometchat.calls.core.CometChatCalls
17
- import com.cometchat.calls.model.CallLog
18
- import com.cometchat.calls.model.CallLogRequest
19
- import com.cometchat.calls.model.Recording
20
- import com.cometchat.calls.exceptions.CometChatException
21
- ```
22
-
23
- ## Implementation
24
-
25
- ### Basic Fetch
26
-
27
- ```kotlin
28
- val callLogRequest = CallLogRequest.CallLogRequestBuilder()
29
- .setLimit(30)
30
- .build()
31
-
32
- callLogRequest.fetchNext(object : CometChatCalls.CallbackListener<List<CallLog>>() {
33
- override fun onSuccess(callLogs: List<CallLog>) {
34
- for (log in callLogs) {
35
- Log.d(TAG, "Session: ${log.sessionID}, Duration: ${log.totalDuration}, Status: ${log.status}")
36
- }
37
- }
38
- override fun onError(e: CometChatException) {
39
- Log.e(TAG, "Error: ${e.message}")
40
- }
41
- })
42
- ```
43
-
44
- ### Filtered Queries
45
-
46
- ```kotlin
47
- // Video calls only
48
- CallLogRequest.CallLogRequestBuilder().setSessionType("video").setLimit(20).build()
49
-
50
- // Calls with recordings
51
- CallLogRequest.CallLogRequestBuilder().setHasRecording(true).build()
52
-
53
- // Missed incoming calls
54
- CallLogRequest.CallLogRequestBuilder().setCallStatus("missed").setCallDirection("incoming").build()
55
-
56
- // Calls with a specific user
57
- CallLogRequest.CallLogRequestBuilder().setUid("user_id").build()
58
-
59
- // Meeting calls only
60
- CallLogRequest.CallLogRequestBuilder().setCallCategory("meet").build()
61
- ```
62
-
63
- ### Pagination
64
-
65
- ```kotlin
66
- // Forward pagination
67
- callLogRequest.fetchNext(listener)
68
-
69
- // Backward pagination
70
- callLogRequest.fetchPrevious(listener)
71
- ```
72
-
73
- ### Access Recordings
74
-
75
- ```kotlin
76
- for (callLog in callLogs) {
77
- if (callLog.isHasRecording) {
78
- callLog.recordings?.forEach { recording ->
79
- Log.d(TAG, "URL: ${recording.recordingURL}")
80
- Log.d(TAG, "Duration: ${recording.duration} seconds")
81
- }
82
- }
83
- }
84
- ```
85
-
86
- ### CallLog Properties
87
-
88
- | Property | Type | Description |
89
- |----------|------|-------------|
90
- | `sessionID` | String | Session identifier |
91
- | `type` | String | `video` or `audio` |
92
- | `status` | String | `ended`, `missed`, `rejected`, `cancelled`, etc. |
93
- | `callCategory` | String | `call` or `meet` |
94
- | `totalDuration` | String | Human-readable duration |
95
- | `totalParticipants` | int | Participant count |
96
- | `hasRecording` | boolean | Whether recorded |
97
- | `recordings` | List\<Recording\> | Recording objects |
98
- | `initiator` | CallEntity | Who started the call |
99
- | `receiver` | CallEntity | Who received the call |
100
-
101
- ## Gotchas
102
-
103
- - `CallLogRequest` is from the **Calls SDK**, not the Chat SDK
104
- - `setSessionType()` takes lowercase strings: `"video"` or `"audio"`
105
- - `setCallDirection()` takes `"incoming"` or `"outgoing"`
106
- - `setCallCategory()` takes `"call"` or `"meet"`
107
- - Create a new `CallLogRequest` to reset pagination
108
- - The sample app uses Chat SDK's `MessagesRequest` for call logs — the Calls SDK's `CallLogRequest` provides richer data
109
-
110
- ## Sample App Reference
111
-
112
- - `Repository.kt` — `fetchCallLogs()` (uses Chat SDK approach)
113
- - For Calls SDK approach, use `CallLogRequest` as shown above