@cometchat/skills 4.4.2 → 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 (490) 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/LICENSE +21 -0
  5. package/README.md +41 -163
  6. package/RULES.md +114 -0
  7. package/bin/cometchat-skills.mjs +1180 -0
  8. package/bin/legacy-skills.json +95 -0
  9. package/catalogs/android-v6.json +1646 -0
  10. package/catalogs/flutter-v6.json +651 -0
  11. package/catalogs/ios-v5.json +1383 -0
  12. package/catalogs/rn-calls-v5.json +134 -0
  13. package/catalogs/rn-calls-v5.symbols.txt +58 -0
  14. package/catalogs/rn-sdk-v4.json +672 -0
  15. package/catalogs/rn-v5.json +449 -0
  16. package/catalogs/rn-v5.symbols.txt +216 -0
  17. package/catalogs/sdk-android-v5.json +514 -0
  18. package/contracts.android-calls-v5.json +122 -0
  19. package/contracts.android-v6.json +135 -0
  20. package/contracts.angular-v5.json +694 -0
  21. package/contracts.flutter-calls-v5.json +77 -0
  22. package/contracts.flutter-v6.json +126 -0
  23. package/contracts.ios-calls-v5.json +67 -0
  24. package/contracts.ios-v5.json +436 -0
  25. package/contracts.json +82 -0
  26. package/contracts.rn-calls-v5.json +77 -0
  27. package/contracts.rn-v5.json +727 -0
  28. package/contracts.sdk-android-v5.json +15 -0
  29. package/contracts.web-calls-v5.json +45 -0
  30. package/features.android-calls-v5.json +246 -0
  31. package/features.android-v6.json +65 -0
  32. package/features.angular-v5.json +521 -0
  33. package/features.flutter-calls-v5.json +286 -0
  34. package/features.flutter-v6.json +484 -0
  35. package/features.ios-calls-v5.json +236 -0
  36. package/features.ios-v5.json +573 -0
  37. package/features.json +61 -0
  38. package/features.rn-calls-v5.json +187 -0
  39. package/features.rn-v5.json +614 -0
  40. package/features.sdk-android-v5.json +40 -0
  41. package/features.sdk-jsv4.json +24 -0
  42. package/features.web-calls-v5.json +108 -0
  43. package/package.json +151 -74
  44. package/peers.yaml +312 -0
  45. package/registry/README.md +31 -0
  46. package/registry/android-calls-v5.json +54 -0
  47. package/registry/android-v6.json +137 -0
  48. package/registry/angular-v5.json +114 -0
  49. package/registry/flutter-calls-v5.json +54 -0
  50. package/registry/flutter-v6.json +119 -0
  51. package/registry/ios-calls-v5.json +59 -0
  52. package/registry/ios-v5.json +97 -0
  53. package/registry/rn-calls-v5.json +59 -0
  54. package/registry/rn-v5.json +129 -0
  55. package/registry/sdk-android-v5.json +53 -0
  56. package/registry/sdk-jsv4.json +53 -0
  57. package/registry/web-calls-v5.json +54 -0
  58. package/registry/web-v7.json +99 -0
  59. package/skills/cometchat/SKILL.md +42 -2096
  60. package/skills/cometchat-android-v5-calls-sdk/SKILL.md +206 -0
  61. package/skills/cometchat-android-v5-calls-sdk/references/build-truth.md +63 -0
  62. package/skills/cometchat-android-v5-calls-sdk/references/docs-map.md +119 -0
  63. package/skills/cometchat-android-v5-calls-sdk/references/method-map.md +53 -0
  64. package/skills/cometchat-android-v5-calls-sdk/references/pitfalls.md +72 -0
  65. package/skills/cometchat-android-v5-calls-sdk/references/ringing.md +92 -0
  66. package/skills/cometchat-android-v5-calls-sdk/references/user-switch.md +90 -0
  67. package/skills/cometchat-android-v5-sdk/SKILL.md +127 -0
  68. package/skills/cometchat-android-v5-sdk/references/app-surface.md +88 -0
  69. package/skills/cometchat-android-v5-sdk/references/docs-map.md +91 -0
  70. package/skills/cometchat-android-v6-builder-settings/SKILL.md +51 -137
  71. package/skills/cometchat-android-v6-calls/SKILL.md +128 -413
  72. package/skills/cometchat-android-v6-compose-components/SKILL.md +84 -194
  73. package/skills/cometchat-android-v6-compose-customization/SKILL.md +66 -411
  74. package/skills/cometchat-android-v6-compose-placement/SKILL.md +154 -237
  75. package/skills/cometchat-android-v6-core/SKILL.md +236 -672
  76. package/skills/cometchat-android-v6-core/references/anti-patterns.md +31 -0
  77. package/skills/cometchat-android-v6-core/references/component-props.md +168 -0
  78. package/skills/cometchat-android-v6-core/references/docs-map.md +153 -0
  79. package/skills/cometchat-android-v6-core/references/layout.md +112 -0
  80. package/skills/cometchat-android-v6-core/references/lifecycle.md +75 -0
  81. package/skills/cometchat-android-v6-core/references/setup-credentials.md +105 -0
  82. package/skills/cometchat-android-v6-core/references/troubleshooting.md +36 -0
  83. package/skills/cometchat-android-v6-events/SKILL.md +46 -184
  84. package/skills/cometchat-android-v6-extensions/SKILL.md +39 -179
  85. package/skills/cometchat-android-v6-features/SKILL.md +74 -143
  86. package/skills/cometchat-android-v6-kotlin-components/SKILL.md +75 -193
  87. package/skills/cometchat-android-v6-kotlin-customization/SKILL.md +67 -419
  88. package/skills/cometchat-android-v6-kotlin-placement/SKILL.md +77 -223
  89. package/skills/cometchat-android-v6-migration/SKILL.md +67 -378
  90. package/skills/cometchat-android-v6-production/SKILL.md +40 -179
  91. package/skills/cometchat-android-v6-push/SKILL.md +39 -289
  92. package/skills/cometchat-android-v6-testing/SKILL.md +50 -265
  93. package/skills/cometchat-android-v6-troubleshooting/SKILL.md +70 -254
  94. package/skills/cometchat-angular-v5-calls/SKILL.md +193 -0
  95. package/skills/cometchat-angular-v5-components/SKILL.md +131 -0
  96. package/skills/cometchat-angular-v5-components/references/catalog.md +111 -0
  97. package/skills/cometchat-angular-v5-components/references/host-composed.md +46 -0
  98. package/skills/cometchat-angular-v5-core/SKILL.md +300 -0
  99. package/skills/cometchat-angular-v5-core/references/anti-patterns.md +49 -0
  100. package/skills/cometchat-angular-v5-core/references/component-props.md +55 -0
  101. package/skills/cometchat-angular-v5-core/references/dependencies.md +66 -0
  102. package/skills/cometchat-angular-v5-core/references/docs-map.md +132 -0
  103. package/skills/cometchat-angular-v5-core/references/layout.md +64 -0
  104. package/skills/cometchat-angular-v5-core/references/lifecycle.md +202 -0
  105. package/skills/cometchat-angular-v5-core/references/setup-credentials.md +137 -0
  106. package/skills/cometchat-angular-v5-core/references/theming.md +70 -0
  107. package/skills/cometchat-angular-v5-core/references/troubleshooting.md +27 -0
  108. package/skills/cometchat-angular-v5-customization/SKILL.md +94 -0
  109. package/skills/cometchat-angular-v5-features/SKILL.md +107 -0
  110. package/skills/cometchat-angular-v5-features/references/custom-messages.md +133 -0
  111. package/skills/cometchat-angular-v5-features/references/formatters.md +28 -0
  112. package/skills/cometchat-angular-v5-features/references/host-composed-extensions.md +85 -0
  113. package/skills/cometchat-angular-v5-migration/SKILL.md +40 -0
  114. package/skills/cometchat-angular-v5-migration/references/migration-guide.md +165 -0
  115. package/skills/cometchat-angular-v5-patterns/SKILL.md +107 -0
  116. package/skills/cometchat-angular-v5-placement/SKILL.md +133 -0
  117. package/skills/cometchat-angular-v5-placement/references/combined-app.md +174 -0
  118. package/skills/cometchat-angular-v5-placement/references/core-surface.md +199 -0
  119. package/skills/cometchat-angular-v5-production/SKILL.md +101 -0
  120. package/skills/cometchat-angular-v5-push/SKILL.md +61 -0
  121. package/skills/cometchat-angular-v5-testing/SKILL.md +112 -0
  122. package/skills/cometchat-angular-v5-troubleshooting/SKILL.md +96 -0
  123. package/skills/cometchat-flutter-v5-sdk/SKILL.md +188 -0
  124. package/skills/cometchat-flutter-v5-sdk/references/doc-corrections.md +55 -0
  125. package/skills/cometchat-flutter-v5-sdk/references/docs-map.md +211 -0
  126. package/skills/cometchat-flutter-v5-sdk/references/platform-notes.md +48 -0
  127. package/skills/cometchat-flutter-v5-sdk/references/transcription.md +87 -0
  128. package/skills/cometchat-flutter-v6-calls/SKILL.md +75 -389
  129. package/skills/cometchat-flutter-v6-components/SKILL.md +88 -361
  130. package/skills/cometchat-flutter-v6-core/SKILL.md +154 -593
  131. package/skills/cometchat-flutter-v6-core/references/anti-patterns.md +55 -0
  132. package/skills/cometchat-flutter-v6-core/references/docs-map.md +143 -0
  133. package/skills/cometchat-flutter-v6-core/references/layout.md +45 -0
  134. package/skills/cometchat-flutter-v6-core/references/lifecycle.md +87 -0
  135. package/skills/cometchat-flutter-v6-core/references/setup-credentials.md +84 -0
  136. package/skills/cometchat-flutter-v6-core/references/troubleshooting.md +26 -0
  137. package/skills/cometchat-flutter-v6-customization/SKILL.md +70 -712
  138. package/skills/cometchat-flutter-v6-events/SKILL.md +79 -174
  139. package/skills/cometchat-flutter-v6-features/SKILL.md +55 -394
  140. package/skills/cometchat-flutter-v6-migration/SKILL.md +68 -367
  141. package/skills/cometchat-flutter-v6-migration/references/migration-guide.md +131 -0
  142. package/skills/cometchat-flutter-v6-patterns/SKILL.md +61 -0
  143. package/skills/cometchat-flutter-v6-placement/SKILL.md +94 -381
  144. package/skills/cometchat-flutter-v6-production/SKILL.md +58 -615
  145. package/skills/cometchat-flutter-v6-push/SKILL.md +46 -455
  146. package/skills/cometchat-flutter-v6-testing/SKILL.md +68 -299
  147. package/skills/cometchat-flutter-v6-troubleshooting/SKILL.md +54 -878
  148. package/skills/cometchat-ios-calls/SKILL.md +112 -563
  149. package/skills/cometchat-ios-components/SKILL.md +44 -834
  150. package/skills/cometchat-ios-core/SKILL.md +181 -1068
  151. package/skills/cometchat-ios-core/references/anti-patterns.md +80 -0
  152. package/skills/cometchat-ios-core/references/docs-map.md +123 -0
  153. package/skills/cometchat-ios-core/references/install.md +23 -0
  154. package/skills/cometchat-ios-core/references/layout.md +186 -0
  155. package/skills/cometchat-ios-core/references/setup-credentials.md +197 -0
  156. package/skills/cometchat-ios-core/references/swiftui.md +91 -0
  157. package/skills/cometchat-ios-core/references/troubleshooting.md +100 -0
  158. package/skills/cometchat-ios-customization/SKILL.md +33 -968
  159. package/skills/cometchat-ios-features/SKILL.md +29 -738
  160. package/skills/cometchat-ios-migration/SKILL.md +39 -0
  161. package/skills/cometchat-ios-placement/SKILL.md +51 -729
  162. package/skills/cometchat-ios-push/SKILL.md +24 -602
  163. package/skills/cometchat-ios-v5-sdk/SKILL.md +161 -0
  164. package/skills/cometchat-ios-v5-sdk/references/docs-map.md +326 -0
  165. package/skills/cometchat-js-v5-sdk/SKILL.md +95 -0
  166. package/skills/cometchat-js-v5-sdk/references/docs-map.md +114 -0
  167. package/skills/cometchat-onboarding/SKILL.md +89 -0
  168. package/skills/cometchat-onboarding/references/archetypes.md +51 -0
  169. package/skills/cometchat-onboarding/references/calling-first.md +77 -0
  170. package/skills/cometchat-onboarding/references/not-in-this-pack.md +8 -0
  171. package/skills/cometchat-onboarding/references/plan-artifact.md +133 -0
  172. package/skills/cometchat-onboarding/references/platforms.md +90 -0
  173. package/skills/cometchat-react-native-bare-patterns/SKILL.md +120 -0
  174. package/skills/cometchat-react-native-calls/SKILL.md +200 -0
  175. package/skills/cometchat-react-native-components/SKILL.md +142 -0
  176. package/skills/cometchat-react-native-core/SKILL.md +313 -0
  177. package/skills/cometchat-react-native-core/references/anti-patterns.md +79 -0
  178. package/skills/cometchat-react-native-core/references/component-props.md +105 -0
  179. package/skills/cometchat-react-native-core/references/dependencies.md +62 -0
  180. package/skills/cometchat-react-native-core/references/docs-map.md +126 -0
  181. package/skills/cometchat-react-native-core/references/layout.md +61 -0
  182. package/skills/cometchat-react-native-core/references/lifecycle.md +64 -0
  183. package/skills/cometchat-react-native-core/references/setup-credentials.md +39 -0
  184. package/skills/cometchat-react-native-customization/SKILL.md +198 -0
  185. package/skills/cometchat-react-native-expo-patterns/SKILL.md +116 -0
  186. package/skills/cometchat-react-native-features/SKILL.md +122 -0
  187. package/skills/cometchat-react-native-migration/SKILL.md +103 -0
  188. package/skills/cometchat-react-native-placement/SKILL.md +158 -0
  189. package/skills/cometchat-react-native-production/SKILL.md +78 -0
  190. package/skills/cometchat-react-native-push/SKILL.md +88 -0
  191. package/skills/cometchat-react-native-sdk/SKILL.md +126 -0
  192. package/skills/cometchat-react-native-sdk/references/method-map.md +239 -0
  193. package/skills/cometchat-react-native-sdk/references/page-map.md +96 -0
  194. package/skills/cometchat-react-native-testing/SKILL.md +94 -0
  195. package/skills/cometchat-react-native-troubleshooting/SKILL.md +116 -0
  196. package/skills/cometchat-react-native-v5-sdk/SKILL.md +150 -0
  197. package/skills/cometchat-react-native-v5-sdk/references/docs-map.md +127 -0
  198. package/skills/cometchat-react-native-v5-sdk/references/ringing-voip.md +369 -0
  199. package/skills/cometchat-react-v7-calls/SKILL.md +75 -0
  200. package/skills/cometchat-react-v7-components/SKILL.md +72 -0
  201. package/skills/cometchat-react-v7-core/SKILL.md +101 -0
  202. package/skills/cometchat-react-v7-core/references/anti-patterns.md +19 -0
  203. package/skills/cometchat-react-v7-core/references/component-props.md +82 -0
  204. package/skills/cometchat-react-v7-core/references/dependencies.md +23 -0
  205. package/skills/cometchat-react-v7-core/references/docs-map.md +117 -0
  206. package/skills/cometchat-react-v7-core/references/i18n-rtl-a11y.md +22 -0
  207. package/skills/cometchat-react-v7-core/references/layout.md +158 -0
  208. package/skills/cometchat-react-v7-core/references/lifecycle.md +74 -0
  209. package/skills/cometchat-react-v7-core/references/setup-credentials.md +58 -0
  210. package/skills/cometchat-react-v7-core/references/ssr.md +11 -0
  211. package/skills/cometchat-react-v7-core/references/theming.md +52 -0
  212. package/skills/cometchat-react-v7-core/references/troubleshooting.md +28 -0
  213. package/skills/cometchat-react-v7-customization/SKILL.md +84 -0
  214. package/skills/cometchat-react-v7-features/SKILL.md +92 -0
  215. package/skills/cometchat-react-v7-migration/SKILL.md +39 -0
  216. package/skills/cometchat-react-v7-migration/references/migration-guide.md +119 -0
  217. package/skills/cometchat-react-v7-patterns/SKILL.md +43 -0
  218. package/skills/cometchat-react-v7-placement/SKILL.md +106 -0
  219. package/skills/cometchat-react-v7-placement/references/recipes.md +354 -0
  220. package/skills/cometchat-react-v7-push/SKILL.md +53 -0
  221. package/test-suite/README.md +70 -0
  222. package/test-suite/catalogs/android-calls-v5.json +830 -0
  223. package/test-suite/catalogs/android-calls-v5.symbols.txt +499 -0
  224. package/test-suite/catalogs/android-v6.json +1646 -0
  225. package/test-suite/catalogs/android-v6.symbols.txt +298 -0
  226. package/test-suite/catalogs/angular-v5.json +7587 -0
  227. package/test-suite/catalogs/flutter-calls-v5.json +196 -0
  228. package/test-suite/catalogs/flutter-calls-v5.symbols.txt +59 -0
  229. package/test-suite/catalogs/flutter-v6.json +651 -0
  230. package/test-suite/catalogs/ios-calls-v5.json +158 -0
  231. package/test-suite/catalogs/ios-calls-v5.symbols.txt +70 -0
  232. package/test-suite/catalogs/ios-v5.json +1383 -0
  233. package/test-suite/catalogs/ios-v5.symbols.txt +699 -0
  234. package/test-suite/catalogs/rn-calls-v5.json +134 -0
  235. package/test-suite/catalogs/rn-sdk-v4.json +672 -0
  236. package/test-suite/catalogs/rn-v5.json +449 -0
  237. package/test-suite/catalogs/sdk-android-v5.json +514 -0
  238. package/test-suite/catalogs/sdk-android-v5.symbols.txt +254 -0
  239. package/test-suite/catalogs/sdk-jsv4.json +800 -0
  240. package/test-suite/catalogs/web-calls-v5.json +195 -0
  241. package/test-suite/catalogs/web-v7.json +1243 -0
  242. package/test-suite/scripts/build-registry.mjs +113 -0
  243. package/test-suite/scripts/catalog-refresh-dart.mjs +151 -0
  244. package/test-suite/scripts/catalog-refresh.mjs +100 -0
  245. package/test-suite/scripts/lint-skills.mjs +909 -0
  246. package/test-suite/scripts/measure-tokens.mjs +169 -0
  247. package/test-suite/scripts/typecheck-fences-dart.mjs +437 -0
  248. package/test-suite/scripts/typecheck-fences-kotlin.mjs +269 -0
  249. package/test-suite/scripts/typecheck-fences.mjs +206 -0
  250. package/test-suite/scripts/verify-catalog.mjs +242 -0
  251. package/test-suite/scripts/verify-contract-fences.mjs +94 -0
  252. package/test-suite/scripts/verify-detection.mjs +178 -0
  253. package/test-suite/scripts/verify-docs-base.mjs +91 -0
  254. package/test-suite/scripts/verify-family-agnostic.mjs +130 -0
  255. package/test-suite/scripts/verify-golden-path.mjs +138 -0
  256. package/test-suite/scripts/verify-oracle-components.mjs +133 -0
  257. package/test-suite/scripts/verify-template-bindings.mjs +148 -0
  258. package/test-suite/typecheck/angular-v5/package.json +21 -0
  259. package/test-suite/typecheck/angular-v5/tsconfig.json +21 -0
  260. package/test-suite/typecheck/flutter-v6/analysis_options.yaml +25 -0
  261. package/test-suite/typecheck/flutter-v6/pubspec.yaml +21 -0
  262. package/test-suite/typecheck/web-v7/package.json +18 -0
  263. package/test-suite/typecheck/web-v7/tsconfig.json +19 -0
  264. package/bin/install.js +0 -1003
  265. package/skills/.claude-plugin/marketplace.json +0 -86
  266. package/skills/cometchat/references/asking-questions.md +0 -48
  267. package/skills/cometchat-a11y/SKILL.md +0 -477
  268. package/skills/cometchat-android-v5/SKILL.md +0 -121
  269. package/skills/cometchat-android-v5-calls/SKILL.md +0 -429
  270. package/skills/cometchat-android-v5-calls/references/README.md +0 -53
  271. package/skills/cometchat-android-v5-calls/references/add-calls-to-existing-chat.md +0 -197
  272. package/skills/cometchat-android-v5-calls/references/audio-controls.md +0 -91
  273. package/skills/cometchat-android-v5-calls/references/background-handling.md +0 -168
  274. package/skills/cometchat-android-v5-calls/references/call-layouts.md +0 -131
  275. package/skills/cometchat-android-v5-calls/references/call-logs.md +0 -113
  276. package/skills/cometchat-android-v5-calls/references/call-session.md +0 -274
  277. package/skills/cometchat-android-v5-calls/references/custom-ui.md +0 -150
  278. package/skills/cometchat-android-v5-calls/references/event-listeners.md +0 -123
  279. package/skills/cometchat-android-v5-calls/references/group-calls.md +0 -205
  280. package/skills/cometchat-android-v5-calls/references/idle-timeout.md +0 -117
  281. package/skills/cometchat-android-v5-calls/references/in-call-chat.md +0 -134
  282. package/skills/cometchat-android-v5-calls/references/join-session.md +0 -120
  283. package/skills/cometchat-android-v5-calls/references/migration-v4-to-v5.md +0 -222
  284. package/skills/cometchat-android-v5-calls/references/participant-management.md +0 -110
  285. package/skills/cometchat-android-v5-calls/references/picture-in-picture.md +0 -106
  286. package/skills/cometchat-android-v5-calls/references/raise-hand.md +0 -248
  287. package/skills/cometchat-android-v5-calls/references/recording.md +0 -101
  288. package/skills/cometchat-android-v5-calls/references/ringing-integration.md +0 -152
  289. package/skills/cometchat-android-v5-calls/references/screen-sharing.md +0 -78
  290. package/skills/cometchat-android-v5-calls/references/server-fcm-voip.md +0 -215
  291. package/skills/cometchat-android-v5-calls/references/session-settings.md +0 -121
  292. package/skills/cometchat-android-v5-calls/references/setup.md +0 -137
  293. package/skills/cometchat-android-v5-calls/references/share-invite.md +0 -156
  294. package/skills/cometchat-android-v5-calls/references/video-controls.md +0 -87
  295. package/skills/cometchat-android-v5-calls/references/voip-calling.md +0 -526
  296. package/skills/cometchat-android-v5-components/SKILL.md +0 -431
  297. package/skills/cometchat-android-v5-core/SKILL.md +0 -486
  298. package/skills/cometchat-android-v5-customization/SKILL.md +0 -469
  299. package/skills/cometchat-android-v5-extensions/SKILL.md +0 -127
  300. package/skills/cometchat-android-v5-features/SKILL.md +0 -131
  301. package/skills/cometchat-android-v5-placement/SKILL.md +0 -277
  302. package/skills/cometchat-android-v5-production/SKILL.md +0 -95
  303. package/skills/cometchat-android-v5-push/SKILL.md +0 -619
  304. package/skills/cometchat-android-v5-testing/SKILL.md +0 -188
  305. package/skills/cometchat-android-v5-theming/SKILL.md +0 -167
  306. package/skills/cometchat-android-v5-troubleshooting/SKILL.md +0 -74
  307. package/skills/cometchat-android-v6/SKILL.md +0 -108
  308. package/skills/cometchat-android-v6-calls/references/add-calls-to-existing-chat.md +0 -97
  309. package/skills/cometchat-android-v6-calls/references/advanced-features.md +0 -87
  310. package/skills/cometchat-android-v6-calls/references/call-layouts.md +0 -100
  311. package/skills/cometchat-android-v6-calls/references/call-session.md +0 -163
  312. package/skills/cometchat-android-v6-calls/references/device-management.md +0 -172
  313. package/skills/cometchat-android-v6-calls/references/group-calls.md +0 -191
  314. package/skills/cometchat-android-v6-calls/references/idle-timeout.md +0 -110
  315. package/skills/cometchat-android-v6-calls/references/in-call-chat.md +0 -141
  316. package/skills/cometchat-android-v6-calls/references/raise-hand.md +0 -188
  317. package/skills/cometchat-android-v6-calls/references/ringing-integration.md +0 -176
  318. package/skills/cometchat-android-v6-calls/references/server-fcm-voip.md +0 -127
  319. package/skills/cometchat-android-v6-calls/references/share-invite.md +0 -105
  320. package/skills/cometchat-android-v6-compose-theming/SKILL.md +0 -250
  321. package/skills/cometchat-android-v6-kotlin-theming/SKILL.md +0 -233
  322. package/skills/cometchat-angular-calls/SKILL.md +0 -380
  323. package/skills/cometchat-angular-calls/references/add-calls-to-existing-chat.md +0 -96
  324. package/skills/cometchat-angular-calls/references/call-layouts.md +0 -123
  325. package/skills/cometchat-angular-calls/references/call-session.md +0 -167
  326. package/skills/cometchat-angular-calls/references/custom-ui.md +0 -239
  327. package/skills/cometchat-angular-calls/references/device-management.md +0 -154
  328. package/skills/cometchat-angular-calls/references/group-calls.md +0 -433
  329. package/skills/cometchat-angular-calls/references/idle-timeout.md +0 -161
  330. package/skills/cometchat-angular-calls/references/in-call-chat.md +0 -148
  331. package/skills/cometchat-angular-calls/references/lazy-loading-pitfalls.md +0 -205
  332. package/skills/cometchat-angular-calls/references/migration-v4-to-v5.md +0 -53
  333. package/skills/cometchat-angular-calls/references/ngzone-and-async-callbacks.md +0 -184
  334. package/skills/cometchat-angular-calls/references/picture-in-picture.md +0 -285
  335. package/skills/cometchat-angular-calls/references/raise-hand.md +0 -172
  336. package/skills/cometchat-angular-calls/references/recording-screen-share.md +0 -260
  337. package/skills/cometchat-angular-calls/references/ringing-integration.md +0 -133
  338. package/skills/cometchat-angular-calls/references/server-web-push-vapid.md +0 -100
  339. package/skills/cometchat-angular-calls/references/share-invite.md +0 -122
  340. package/skills/cometchat-angular-calls/references/virtual-background.md +0 -29
  341. package/skills/cometchat-angular-components/SKILL.md +0 -235
  342. package/skills/cometchat-angular-core/SKILL.md +0 -386
  343. package/skills/cometchat-angular-customization/SKILL.md +0 -616
  344. package/skills/cometchat-angular-features/SKILL.md +0 -329
  345. package/skills/cometchat-angular-patterns/SKILL.md +0 -256
  346. package/skills/cometchat-angular-placement/SKILL.md +0 -314
  347. package/skills/cometchat-angular-production/SKILL.md +0 -564
  348. package/skills/cometchat-angular-push/SKILL.md +0 -389
  349. package/skills/cometchat-angular-testing/SKILL.md +0 -605
  350. package/skills/cometchat-angular-theming/SKILL.md +0 -290
  351. package/skills/cometchat-angular-troubleshooting/SKILL.md +0 -364
  352. package/skills/cometchat-astro-patterns/SKILL.md +0 -708
  353. package/skills/cometchat-calls/SKILL.md +0 -364
  354. package/skills/cometchat-calls/references/use-case-broadcast.md +0 -199
  355. package/skills/cometchat-calls/references/use-case-marketplace.md +0 -157
  356. package/skills/cometchat-calls/references/use-case-support.md +0 -189
  357. package/skills/cometchat-calls/references/use-case-team.md +0 -180
  358. package/skills/cometchat-calls/references/use-case-telehealth.md +0 -153
  359. package/skills/cometchat-components/SKILL.md +0 -1142
  360. package/skills/cometchat-core/SKILL.md +0 -1048
  361. package/skills/cometchat-customization/SKILL.md +0 -580
  362. package/skills/cometchat-customization/references/component-catalog.md +0 -236
  363. package/skills/cometchat-features/SKILL.md +0 -861
  364. package/skills/cometchat-flutter-v5/SKILL.md +0 -173
  365. package/skills/cometchat-flutter-v5-calls/SKILL.md +0 -455
  366. package/skills/cometchat-flutter-v5-calls/references/add-calls-to-existing-chat.md +0 -193
  367. package/skills/cometchat-flutter-v5-calls/references/call-layouts.md +0 -103
  368. package/skills/cometchat-flutter-v5-calls/references/call-session.md +0 -285
  369. package/skills/cometchat-flutter-v5-calls/references/device-management.md +0 -124
  370. package/skills/cometchat-flutter-v5-calls/references/group-calls.md +0 -181
  371. package/skills/cometchat-flutter-v5-calls/references/idle-timeout.md +0 -99
  372. package/skills/cometchat-flutter-v5-calls/references/in-call-chat.md +0 -135
  373. package/skills/cometchat-flutter-v5-calls/references/migration-v4-to-v5.md +0 -210
  374. package/skills/cometchat-flutter-v5-calls/references/raise-hand.md +0 -255
  375. package/skills/cometchat-flutter-v5-calls/references/ringing-integration.md +0 -196
  376. package/skills/cometchat-flutter-v5-calls/references/server-push-bridge.md +0 -101
  377. package/skills/cometchat-flutter-v5-calls/references/share-invite.md +0 -148
  378. package/skills/cometchat-flutter-v5-conversations/SKILL.md +0 -118
  379. package/skills/cometchat-flutter-v5-core/SKILL.md +0 -239
  380. package/skills/cometchat-flutter-v5-customization/SKILL.md +0 -358
  381. package/skills/cometchat-flutter-v5-events/SKILL.md +0 -156
  382. package/skills/cometchat-flutter-v5-messages/SKILL.md +0 -259
  383. package/skills/cometchat-flutter-v5-production/SKILL.md +0 -216
  384. package/skills/cometchat-flutter-v5-push/SKILL.md +0 -285
  385. package/skills/cometchat-flutter-v5-testing/SKILL.md +0 -401
  386. package/skills/cometchat-flutter-v5-theming/SKILL.md +0 -161
  387. package/skills/cometchat-flutter-v5-troubleshooting/SKILL.md +0 -130
  388. package/skills/cometchat-flutter-v5-users-groups/SKILL.md +0 -152
  389. package/skills/cometchat-flutter-v6/SKILL.md +0 -446
  390. package/skills/cometchat-flutter-v6-calls/references/add-calls-to-existing-chat.md +0 -136
  391. package/skills/cometchat-flutter-v6-calls/references/advanced-features.md +0 -89
  392. package/skills/cometchat-flutter-v6-calls/references/call-layouts.md +0 -105
  393. package/skills/cometchat-flutter-v6-calls/references/call-session.md +0 -229
  394. package/skills/cometchat-flutter-v6-calls/references/device-management.md +0 -105
  395. package/skills/cometchat-flutter-v6-calls/references/group-calls.md +0 -190
  396. package/skills/cometchat-flutter-v6-calls/references/idle-timeout.md +0 -88
  397. package/skills/cometchat-flutter-v6-calls/references/in-call-chat.md +0 -125
  398. package/skills/cometchat-flutter-v6-calls/references/raise-hand.md +0 -275
  399. package/skills/cometchat-flutter-v6-calls/references/ringing-integration.md +0 -171
  400. package/skills/cometchat-flutter-v6-calls/references/server-push-bridge.md +0 -93
  401. package/skills/cometchat-flutter-v6-calls/references/share-invite.md +0 -102
  402. package/skills/cometchat-flutter-v6-conversations/SKILL.md +0 -238
  403. package/skills/cometchat-flutter-v6-messages/SKILL.md +0 -384
  404. package/skills/cometchat-flutter-v6-theming/SKILL.md +0 -293
  405. package/skills/cometchat-flutter-v6-users-groups/SKILL.md +0 -224
  406. package/skills/cometchat-i18n/SKILL.md +0 -419
  407. package/skills/cometchat-ios/SKILL.md +0 -325
  408. package/skills/cometchat-ios-calls/references/add-calls-to-existing-chat.md +0 -181
  409. package/skills/cometchat-ios-calls/references/audio-modes-and-controls.md +0 -45
  410. package/skills/cometchat-ios-calls/references/avaudiosession-routing.md +0 -188
  411. package/skills/cometchat-ios-calls/references/call-layouts.md +0 -76
  412. package/skills/cometchat-ios-calls/references/call-session.md +0 -218
  413. package/skills/cometchat-ios-calls/references/callkit-and-pushkit.md +0 -357
  414. package/skills/cometchat-ios-calls/references/custom-ui.md +0 -322
  415. package/skills/cometchat-ios-calls/references/device-management.md +0 -171
  416. package/skills/cometchat-ios-calls/references/group-calls.md +0 -359
  417. package/skills/cometchat-ios-calls/references/idle-timeout.md +0 -184
  418. package/skills/cometchat-ios-calls/references/in-call-chat.md +0 -179
  419. package/skills/cometchat-ios-calls/references/migration-v4-to-v5.md +0 -196
  420. package/skills/cometchat-ios-calls/references/picture-in-picture.md +0 -246
  421. package/skills/cometchat-ios-calls/references/raise-hand.md +0 -26
  422. package/skills/cometchat-ios-calls/references/recording-screen-share.md +0 -252
  423. package/skills/cometchat-ios-calls/references/ringing-integration.md +0 -143
  424. package/skills/cometchat-ios-calls/references/server-apns-pushkit.md +0 -267
  425. package/skills/cometchat-ios-calls/references/share-invite.md +0 -148
  426. package/skills/cometchat-ios-calls/references/swiftui-uikit-hosting.md +0 -246
  427. package/skills/cometchat-ios-calls/references/voip-cert-setup.md +0 -166
  428. package/skills/cometchat-ios-production/SKILL.md +0 -738
  429. package/skills/cometchat-ios-testing/SKILL.md +0 -376
  430. package/skills/cometchat-ios-theming/SKILL.md +0 -667
  431. package/skills/cometchat-ios-troubleshooting/SKILL.md +0 -1003
  432. package/skills/cometchat-native-bare-patterns/SKILL.md +0 -550
  433. package/skills/cometchat-native-calls/SKILL.md +0 -671
  434. package/skills/cometchat-native-calls/references/add-calls-to-existing-chat.md +0 -203
  435. package/skills/cometchat-native-calls/references/call-layouts.md +0 -125
  436. package/skills/cometchat-native-calls/references/call-session.md +0 -182
  437. package/skills/cometchat-native-calls/references/custom-ui.md +0 -254
  438. package/skills/cometchat-native-calls/references/device-management.md +0 -158
  439. package/skills/cometchat-native-calls/references/expo-vs-bare.md +0 -179
  440. package/skills/cometchat-native-calls/references/group-calls.md +0 -296
  441. package/skills/cometchat-native-calls/references/idle-timeout.md +0 -128
  442. package/skills/cometchat-native-calls/references/in-call-chat.md +0 -145
  443. package/skills/cometchat-native-calls/references/migration-v4-to-v5.md +0 -72
  444. package/skills/cometchat-native-calls/references/picture-in-picture.md +0 -276
  445. package/skills/cometchat-native-calls/references/raise-hand.md +0 -205
  446. package/skills/cometchat-native-calls/references/recording-screen-share.md +0 -169
  447. package/skills/cometchat-native-calls/references/ringing-integration.md +0 -118
  448. package/skills/cometchat-native-calls/references/server-push-bridge.md +0 -135
  449. package/skills/cometchat-native-calls/references/server-push-payloads.md +0 -193
  450. package/skills/cometchat-native-calls/references/share-invite.md +0 -146
  451. package/skills/cometchat-native-calls/references/voip-push-end-to-end.md +0 -319
  452. package/skills/cometchat-native-components/SKILL.md +0 -628
  453. package/skills/cometchat-native-core/SKILL.md +0 -679
  454. package/skills/cometchat-native-customization/SKILL.md +0 -716
  455. package/skills/cometchat-native-expo-patterns/SKILL.md +0 -552
  456. package/skills/cometchat-native-features/SKILL.md +0 -638
  457. package/skills/cometchat-native-placement/SKILL.md +0 -509
  458. package/skills/cometchat-native-production/SKILL.md +0 -700
  459. package/skills/cometchat-native-push/SKILL.md +0 -594
  460. package/skills/cometchat-native-testing/SKILL.md +0 -582
  461. package/skills/cometchat-native-theming/SKILL.md +0 -681
  462. package/skills/cometchat-native-troubleshooting/SKILL.md +0 -501
  463. package/skills/cometchat-nextjs-patterns/SKILL.md +0 -899
  464. package/skills/cometchat-placement/SKILL.md +0 -1360
  465. package/skills/cometchat-production/SKILL.md +0 -1027
  466. package/skills/cometchat-react-calls/SKILL.md +0 -752
  467. package/skills/cometchat-react-calls/references/add-calls-to-existing-chat.md +0 -146
  468. package/skills/cometchat-react-calls/references/call-layouts.md +0 -160
  469. package/skills/cometchat-react-calls/references/call-session.md +0 -235
  470. package/skills/cometchat-react-calls/references/custom-ui.md +0 -247
  471. package/skills/cometchat-react-calls/references/device-management.md +0 -210
  472. package/skills/cometchat-react-calls/references/group-calls.md +0 -257
  473. package/skills/cometchat-react-calls/references/idle-timeout.md +0 -188
  474. package/skills/cometchat-react-calls/references/in-call-chat.md +0 -212
  475. package/skills/cometchat-react-calls/references/migration-v4-to-v5.md +0 -170
  476. package/skills/cometchat-react-calls/references/picture-in-picture.md +0 -245
  477. package/skills/cometchat-react-calls/references/raise-hand.md +0 -238
  478. package/skills/cometchat-react-calls/references/recording-screen-share.md +0 -144
  479. package/skills/cometchat-react-calls/references/ringing-integration.md +0 -255
  480. package/skills/cometchat-react-calls/references/server-web-push-vapid.md +0 -241
  481. package/skills/cometchat-react-calls/references/share-invite.md +0 -175
  482. package/skills/cometchat-react-calls/references/testing-calls-on-web.md +0 -216
  483. package/skills/cometchat-react-calls/references/virtual-background.md +0 -32
  484. package/skills/cometchat-react-calls/references/voip-and-web-push.md +0 -165
  485. package/skills/cometchat-react-patterns/SKILL.md +0 -628
  486. package/skills/cometchat-react-push/SKILL.md +0 -634
  487. package/skills/cometchat-react-router-patterns/SKILL.md +0 -758
  488. package/skills/cometchat-react-testing/SKILL.md +0 -413
  489. package/skills/cometchat-theming/SKILL.md +0 -498
  490. 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