@tencent-rtc/mcp 1.4.7 → 1.6.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.
- package/cursor-setting.png +0 -0
- package/index.js +0 -1
- package/knowledge/bm25-cache.js +73 -0
- package/knowledge/bm25.js +147 -0
- package/knowledge/build-index.js +69 -0
- package/knowledge/chunker.js +167 -0
- package/knowledge/content-loader.js +39 -0
- package/knowledge/doc-url-resolver.js +142 -0
- package/knowledge/extractors.js +25 -0
- package/knowledge/path-meta.js +184 -0
- package/knowledge/search/exact-lookup.js +497 -0
- package/knowledge/search/filter-pool.js +104 -0
- package/knowledge/search/product-scope-intent.js +40 -0
- package/knowledge/search/requires-framework.js +81 -0
- package/knowledge/search/search-knowledge.js +229 -0
- package/mcp-server-prompt.png +0 -0
- package/package.json +1 -1
- package/resource/_schema/feature-aliases.yaml +10 -0
- package/resource/_schema/goal-tags.yaml +72 -0
- package/resource/_schema/products.yaml +19 -0
- package/resource/_schema/trtc-intents.yaml +27 -0
- package/resource/_schema/types.yaml +43 -0
- package/resource/index/component-slugs.json +1 -0
- package/resource/index/doc-source-urls.json +1 -0
- package/resource/index/manifest.json +1 -0
- package/resource/{doc → integration}/callkit/preset/android/integration.md +34 -28
- package/resource/integration/callkit/preset/flutter/integration.md +346 -0
- package/resource/integration/callkit/preset/ios/integration.md +408 -0
- package/resource/integration/callkit/preset/react/integration.md +362 -0
- package/resource/integration/callkit/preset/vue/integration.md +356 -0
- package/resource/integration/chat/preset/android/integration.md +500 -0
- package/resource/integration/chat/preset/flutter/integration.md +370 -0
- package/resource/integration/chat/preset/ios/integration.md +566 -0
- package/resource/integration/chat/preset/react/integration.md +490 -0
- package/resource/integration/chat/preset/vue/integration.md +504 -0
- package/resource/{doc → integration}/livekit/preset/live/vue/live-list-integration.md +26 -22
- package/resource/{doc → integration}/livekit/preset/live/vue/live-player-desk-integration.md +22 -18
- package/resource/integration/livekit/preset/live/vue/live-player-h5-integration.md +309 -0
- package/resource/{doc → integration}/livekit/preset/live/vue/live-pusher-integration.md +47 -39
- package/resource/integration/roomkit/preset/vue/integration.md +562 -0
- package/resource/knowledge/callkit/core-sdk/android/answer-call.md +828 -0
- package/resource/knowledge/callkit/core-sdk/android/make-call.md +897 -0
- package/resource/knowledge/callkit/core-sdk/android/offline-push.md +363 -0
- package/resource/knowledge/callkit/core-sdk/flutter/answer-call.md +1111 -0
- package/resource/knowledge/callkit/core-sdk/flutter/make-call.md +1132 -0
- package/resource/{doc → knowledge}/callkit/core-sdk/flutter/offline-push.md +174 -151
- package/resource/knowledge/callkit/core-sdk/ios/answer-call.md +1084 -0
- package/resource/knowledge/callkit/core-sdk/ios/make-call.md +1252 -0
- package/resource/knowledge/callkit/core-sdk/ios/offline-push.md +534 -0
- package/resource/knowledge/callkit/core-sdk/uni-app/answer-call.md +953 -0
- package/resource/knowledge/callkit/core-sdk/uni-app/make-call.md +1061 -0
- package/resource/knowledge/callkit/faq/android.md +92 -0
- package/resource/{doc/callkit/faq/android-faq.md → knowledge/callkit/faq/common.md} +11 -12
- package/resource/knowledge/callkit/faq/error-code.md +67 -0
- package/resource/knowledge/callkit/faq/flutter.md +52 -0
- package/resource/knowledge/callkit/faq/ios.md +104 -0
- package/resource/knowledge/callkit/faq/web.md +74 -0
- package/resource/knowledge/callkit/preset/android/api.md +412 -0
- package/resource/knowledge/callkit/preset/flutter/api.md +22 -0
- package/resource/knowledge/callkit/preset/ios/api.md +234 -0
- package/resource/knowledge/callkit/preset/web/api.md +83 -0
- package/resource/knowledge/chat/preset/android/features/chat-setting.md +74 -0
- package/resource/knowledge/chat/preset/android/features/contact-list.md +43 -0
- package/resource/knowledge/chat/preset/android/features/conversation-list.md +117 -0
- package/resource/knowledge/chat/preset/android/features/language.md +136 -0
- package/resource/knowledge/chat/preset/android/features/message-input.md +57 -0
- package/resource/knowledge/chat/preset/android/features/message-list.md +142 -0
- package/resource/knowledge/chat/preset/android/features/search.md +64 -0
- package/resource/knowledge/chat/preset/android/features/theme.md +222 -0
- package/resource/knowledge/chat/preset/android-view/integration.md +300 -0
- package/resource/knowledge/chat/preset/flutter/features/chat-setting.md +64 -0
- package/resource/knowledge/chat/preset/flutter/features/contact-list.md +40 -0
- package/resource/knowledge/chat/preset/flutter/features/conversation-list.md +129 -0
- package/resource/knowledge/chat/preset/flutter/features/language.md +104 -0
- package/resource/knowledge/chat/preset/flutter/features/message-input.md +54 -0
- package/resource/knowledge/chat/preset/flutter/features/message-list.md +158 -0
- package/resource/knowledge/chat/preset/flutter/features/search.md +59 -0
- package/resource/knowledge/chat/preset/flutter/features/theme.md +261 -0
- package/resource/knowledge/chat/preset/ios/features/chat-setting.md +94 -0
- package/resource/knowledge/chat/preset/ios/features/contact-list.md +119 -0
- package/resource/knowledge/chat/preset/ios/features/conversation-list.md +134 -0
- package/resource/knowledge/chat/preset/ios/features/language.md +125 -0
- package/resource/knowledge/chat/preset/ios/features/message-input.md +69 -0
- package/resource/knowledge/chat/preset/ios/features/message-list.md +162 -0
- package/resource/knowledge/chat/preset/ios/features/search.md +93 -0
- package/resource/knowledge/chat/preset/ios/features/theme.md +270 -0
- package/resource/{doc/chatkit/ios → knowledge/chat/preset/ios-uikit}/integration.md +160 -158
- package/resource/knowledge/chat/preset/react/features/chat-setting.md +101 -0
- package/resource/{doc/chatkit/react/components → knowledge/chat/preset/react/features}/contact-list.md +43 -41
- package/resource/knowledge/chat/preset/react/features/conversation-actions.md +215 -0
- package/resource/knowledge/chat/preset/react/features/conversation-list.md +339 -0
- package/resource/knowledge/chat/preset/react/features/conversation-preview.md +101 -0
- package/resource/knowledge/chat/preset/react/features/conversation-search.md +61 -0
- package/resource/{doc/chatkit/react/components → knowledge/chat/preset/react/features}/message-input.md +117 -156
- package/resource/knowledge/chat/preset/react/features/message-list.md +297 -0
- package/resource/{doc/chatkit/react/components → knowledge/chat/preset/react/features}/search.md +65 -59
- package/resource/knowledge/chat/preset/react/features/theme.md +93 -0
- package/resource/knowledge/chat/preset/vue/features/chat-header.md +331 -0
- package/resource/knowledge/chat/preset/vue/features/chat-setting.md +79 -0
- package/resource/knowledge/chat/preset/vue/features/contact-list.md +277 -0
- package/resource/knowledge/chat/preset/vue/features/conversation-actions.md +234 -0
- package/resource/knowledge/chat/preset/vue/features/conversation-list.md +331 -0
- package/resource/knowledge/chat/preset/vue/features/conversation-preview.md +216 -0
- package/resource/{doc/chatkit/vue/components → knowledge/chat/preset/vue/features}/conversation-search.md +13 -13
- package/resource/knowledge/chat/preset/vue/features/message-input.md +551 -0
- package/resource/knowledge/chat/preset/vue/features/message-list.md +350 -0
- package/resource/{doc/chatkit/vue/components → knowledge/chat/preset/vue/features}/search.md +79 -73
- package/resource/knowledge/chat/preset/vue/features/theme.md +136 -0
- package/resource/knowledge/chat/urls/error-code.md +17 -0
- package/resource/knowledge/chat/urls/product.md +43 -0
- package/resource/knowledge/chat/urls/restapi.md +204 -0
- package/resource/knowledge/chat/urls/sdk/android.md +80 -0
- package/resource/knowledge/chat/urls/sdk/flutter.md +71 -0
- package/resource/knowledge/chat/urls/sdk/ios.md +80 -0
- package/resource/knowledge/chat/urls/sdk/web.md +80 -0
- package/resource/knowledge/chat/urls/webhook.md +68 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/android/AudioEffectStore.md +286 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/android/BarrageStore.md +174 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/android/BattleStore.md +329 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/android/CameraView.md +55 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/android/CoGuestStore.md +434 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/android/CoHostStore.md +362 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/android/DeviceStore.md +466 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/android/GiftStore.md +173 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/android/LikeStore.md +51 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/android/LiveAudienceStore.md +291 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/android/LiveCoreView.md +78 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/android/LiveSeatStore.md +488 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/android/LoginStore.md +219 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/AudioEffectStore.md +282 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/BarrageStore.md +212 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/BaseBeautyStore.md +153 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/BattleStore.md +312 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/CoGuestStore.md +404 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/CoHostStore.md +334 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/DeviceStore.md +426 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/GiftStore.md +166 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LikeStore.md +52 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LiveAudienceStore.md +281 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LiveCoreView.md +150 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LiveSeatStore.md +438 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LoginStore.md +190 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/AudioEffectStore.md +291 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/BarrageStore.md +192 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/BaseBeautyStore.md +146 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/BattleStore.md +309 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/CoGuestStore.md +370 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/CoHostStore.md +339 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/DeviceStore.md +503 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/GiftStore.md +188 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/LikeStore.md +51 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/LiveAudienceStore.md +289 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/LiveCoreView.md +78 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/LiveSeatStore.md +487 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/LoginStore.md +183 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/web/index.md +736 -0
- package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-audience-list.md +53 -47
- package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-audio-effect.md +28 -24
- package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-barrage.md +22 -18
- package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-base-beauty.md +17 -15
- package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-co-guest-interaction.md +19 -18
- package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-gift.md +102 -89
- package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-host-interaction.md +41 -37
- package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-integration.md +45 -43
- package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-live-list.md +23 -20
- package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-audience-list.md +41 -41
- package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-audio-effect.md +70 -69
- package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-barrage.md +68 -71
- package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-base-beauty.md +43 -47
- package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-co-guest-interaction.md +59 -56
- package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-gift.md +103 -105
- package/resource/knowledge/livekit/core-sdk/live/flutter/live-host-interaction.md +869 -0
- package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-integration.md +84 -87
- package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-live-list.md +43 -40
- package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-audience-list.md +11 -10
- package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-audio-effect.md +28 -24
- package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-barrage.md +22 -18
- package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-base-beauty.md +15 -14
- package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-co-guest-interaction.md +19 -18
- package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-gift.md +54 -50
- package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-host-interaction.md +41 -37
- package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-integration.md +40 -40
- package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-live-list.md +19 -18
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-audience-list.md +53 -47
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-audio-effect.md +28 -24
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-barrage.md +22 -18
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-co-guest-interaction.md +41 -33
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-gift.md +94 -81
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-host-interaction.md +35 -30
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-integration.md +45 -42
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-room-list.md +23 -20
- package/resource/knowledge/livekit/core-sdk/voice/flutter/voice-audience-list.md +260 -0
- package/resource/knowledge/livekit/core-sdk/voice/flutter/voice-audio-effect.md +598 -0
- package/resource/knowledge/livekit/core-sdk/voice/flutter/voice-barrage.md +490 -0
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/flutter/voice-co-guest-interaction.md +65 -59
- package/resource/knowledge/livekit/core-sdk/voice/flutter/voice-gift.md +424 -0
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/flutter/voice-integration.md +69 -76
- package/resource/knowledge/livekit/core-sdk/voice/flutter/voice-room-list.md +726 -0
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-audience-list.md +11 -10
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-audio-effect.md +28 -24
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-barrage.md +22 -18
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-co-guest-interaction.md +41 -33
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-gift.md +54 -50
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-host-interaction.md +35 -30
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-integration.md +49 -46
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-room-list.md +19 -18
- package/resource/knowledge/livekit/faq/error-code.md +193 -0
- package/resource/{doc/livekit/preset/live/vue/components → knowledge/livekit/preset/live/vue/features}/barrage.md +56 -53
- package/resource/{doc/livekit/preset/live/vue/components → knowledge/livekit/preset/live/vue/features}/live-audience-list.md +22 -21
- package/resource/{doc/livekit/preset/live/vue/components → knowledge/livekit/preset/live/vue/features}/live-view.md +34 -32
- package/resource/knowledge/push/config/android.md +92 -0
- package/resource/knowledge/push/config/harmonyos.md +83 -0
- package/resource/knowledge/push/config/ios.md +254 -0
- package/resource/knowledge/push/config/react-native.md +254 -0
- package/resource/knowledge/push/config/unity.md +209 -0
- package/resource/knowledge/push/config/unreal-engine.md +194 -0
- package/resource/knowledge/push/integration/android.md +404 -0
- package/resource/knowledge/push/integration/flutter.md +465 -0
- package/resource/knowledge/push/integration/harmonyos.md +63 -0
- package/resource/knowledge/push/integration/ios.md +246 -0
- package/resource/knowledge/push/integration/react-native.md +366 -0
- package/resource/knowledge/push/integration/uni-app.md +208 -0
- package/resource/knowledge/push/integration/unity.md +389 -0
- package/resource/knowledge/push/integration/unreal-engine.md +390 -0
- package/resource/knowledge/push/overview/prepare.md +60 -0
- package/resource/knowledge/roomkit/core-sdk/android/call-user-to-room.md +241 -0
- package/resource/knowledge/roomkit/core-sdk/android/room-participant-state.md +588 -0
- package/resource/knowledge/roomkit/core-sdk/android/room-state.md +364 -0
- package/resource/knowledge/roomkit/core-sdk/android/schedule-room.md +340 -0
- package/resource/knowledge/roomkit/core-sdk/flutter/call-user-to-room.md +230 -0
- package/resource/knowledge/roomkit/core-sdk/flutter/room-participant-state.md +797 -0
- package/resource/knowledge/roomkit/core-sdk/flutter/room-state.md +325 -0
- package/resource/knowledge/roomkit/core-sdk/flutter/schedule-room.md +325 -0
- package/resource/knowledge/roomkit/core-sdk/ios/call-user-to-room.md +233 -0
- package/resource/knowledge/roomkit/core-sdk/ios/room-participant-state.md +569 -0
- package/resource/knowledge/roomkit/core-sdk/ios/room-state.md +325 -0
- package/resource/knowledge/roomkit/core-sdk/ios/schedule-room.md +322 -0
- package/resource/knowledge/roomkit/core-sdk/vue/call-user-to-room.md +221 -0
- package/resource/{doc/roomkit/vue/features → knowledge/roomkit/core-sdk/vue}/device-detection.md +49 -48
- package/resource/knowledge/roomkit/core-sdk/vue/device-state.md +461 -0
- package/resource/knowledge/roomkit/core-sdk/vue/free-beauty-panel.md +216 -0
- package/resource/knowledge/roomkit/core-sdk/vue/room-chat.md +370 -0
- package/resource/{doc/roomkit/vue/features → knowledge/roomkit/core-sdk/vue}/room-participant-state.md +61 -60
- package/resource/knowledge/roomkit/core-sdk/vue/room-state.md +280 -0
- package/resource/{doc/roomkit/vue/features → knowledge/roomkit/core-sdk/vue}/room-view.md +57 -56
- package/resource/knowledge/roomkit/core-sdk/vue/schedule-room.md +319 -0
- package/resource/knowledge/roomkit/core-sdk/vue/screen-share.md +267 -0
- package/resource/knowledge/roomkit/core-sdk/vue/virtual-background.md +261 -0
- package/resource/knowledge/roomkit/preset/android/integration.md +396 -0
- package/resource/knowledge/roomkit/preset/flutter/integration.md +404 -0
- package/resource/knowledge/roomkit/preset/ios/integration.md +369 -0
- package/resource/knowledge/roomkit/preset/react/integration.md +576 -0
- package/resource/knowledge/rtcengine/web/how_to_run_web_sdk_demo.md +44 -0
- package/resource/{doc → knowledge}/rtcengine/web/plugin/21-advanced-auto-play-policy.md +8 -2
- package/resource/{doc → knowledge}/rtcengine/web/plugin/22-advanced-audio-mixer.md +19 -1
- package/resource/{doc → knowledge}/rtcengine/web/plugin/23-advanced-support-detection.md +1 -1
- package/resource/{doc → knowledge}/rtcengine/web/plugin/24-advanced-network-quality.md +8 -8
- package/resource/{doc → knowledge}/rtcengine/web/plugin/25-advanced-device-change.md +1 -1
- package/resource/{doc → knowledge}/rtcengine/web/plugin/26-advanced-publish-cdn-stream.md +6 -6
- package/resource/{doc → knowledge}/rtcengine/web/plugin/27-advanced-small-stream.md +3 -3
- package/resource/{doc → knowledge}/rtcengine/web/plugin/29-advanced-water-mark.md +18 -0
- package/resource/{doc → knowledge}/rtcengine/web/plugin/31-advanced-plugins-overview.md +1 -1
- package/resource/{doc → knowledge}/rtcengine/web/plugin/34-advanced-proxy.md +2 -2
- package/resource/{doc → knowledge}/rtcengine/web/plugin/35-advanced-ai-denoiser.md +1 -1
- package/resource/knowledge/trtc/android/TRTCCloud.md +1915 -0
- package/resource/knowledge/trtc/android/TRTCCloudDef.md +1029 -0
- package/resource/knowledge/trtc/android/TRTCCloudListener.md +1095 -0
- package/resource/knowledge/trtc/android/TRTCStatistics.md +68 -0
- package/resource/knowledge/trtc/android/TXAudioEffectManager.md +502 -0
- package/resource/knowledge/trtc/android/TXBeautyManager.md +415 -0
- package/resource/knowledge/trtc/android/TXDeviceManager.md +169 -0
- package/resource/knowledge/trtc/android/TXLiteAVCode.md +125 -0
- package/resource/knowledge/trtc/c++/ITRTCCloud.md +2069 -0
- package/resource/knowledge/trtc/c++/ITRTCStatistics.md +73 -0
- package/resource/knowledge/trtc/c++/ITXAudioEffectManager.md +502 -0
- package/resource/knowledge/trtc/c++/ITXDeviceManager.md +391 -0
- package/resource/knowledge/trtc/c++/TRTCCloudCallback.md +1191 -0
- package/resource/knowledge/trtc/c++/TRTCTypeDef.md +931 -0
- package/resource/knowledge/trtc/c++/TXLiteAVCode.md +127 -0
- package/resource/knowledge/trtc/ios/TRTCCloud.md +2118 -0
- package/resource/knowledge/trtc/ios/TRTCCloudDef.md +975 -0
- package/resource/knowledge/trtc/ios/TRTCCloudDelegate.md +1131 -0
- package/resource/knowledge/trtc/ios/TRTCStatistics.md +68 -0
- package/resource/knowledge/trtc/ios/TXAudioEffectManager.md +423 -0
- package/resource/knowledge/trtc/ios/TXBeautyManager.md +416 -0
- package/resource/knowledge/trtc/ios/TXDeviceManager.md +387 -0
- package/resource/knowledge/trtc/ios/TXLiteAVCode.md +127 -0
- package/server-config.js +0 -1
- package/server.js +35 -12
- package/streamable-http.js +0 -1
- package/tools/call/get_native_call_uikit_integration.js +2 -4
- package/tools/call/get_native_callkit_core_integration.js +2 -6
- package/tools/call/get_web_call_uikit_integration.js +2 -4
- package/tools/chat/get_native_chat_uikit_integration.js +2 -4
- package/tools/chat/get_web_chat_uikit_integration.js +2 -4
- package/tools/common/get_usersig.js +0 -1
- package/tools/common/present_framework_choice.js +19 -14
- package/tools/common/record_answer.js +19 -26
- package/tools/common/record_feedback.js +17 -31
- package/tools/common/search_trtc_knowledge.js +44 -0
- package/tools/definitions/get_native_call_uikit_integration_def.js +3 -2
- package/tools/definitions/get_native_callkit_core_integration_def.js +5 -4
- package/tools/definitions/get_native_chat_uikit_integration_def.js +5 -3
- package/tools/definitions/get_native_livekit_core_integration_def.js +6 -6
- package/tools/definitions/get_usersig_def.js +0 -1
- package/tools/definitions/get_web_call_uikit_integration_def.js +4 -3
- package/tools/definitions/get_web_chat_uikit_integration_def.js +2 -1
- package/tools/definitions/get_web_live_uikit_integration_def.js +5 -6
- package/tools/definitions/get_web_room_core_integration_def.js +49 -0
- package/tools/definitions/get_web_room_uikit_integration_def.js +5 -5
- package/tools/definitions/integration-boundary.js +5 -0
- package/tools/definitions/present_framework_choice_def.js +12 -11
- package/tools/definitions/record_answer_def.js +19 -18
- package/tools/definitions/record_feedback_def.js +14 -14
- package/tools/definitions/search_trtc_knowledge_def.js +39 -0
- package/tools/index.js +5 -37
- package/tools/live/get_native_livekit_core_integration.js +1 -4
- package/tools/live/get_web_live_uikit_integration.js +2 -5
- package/tools/room/get_web_room_core_integration.js +47 -0
- package/tools/room/get_web_room_uikit_integration.js +2 -4
- package/utils/generate-structured-result.js +24 -31
- package/utils/generate-usersig.js +0 -1
- package/utils/get-device-identifier.js +0 -1
- package/utils/get-doc-content.js +14 -9
- package/utils/http-get.js +0 -1
- package/utils/http-post.js +0 -1
- package/utils/report-cls-client.js +18 -21
- package/utils/report-es-client.js +1 -2
- package/index.js.map +0 -1
- package/resource/doc/callkit/core-sdk/.gitkeep +0 -0
- package/resource/doc/callkit/core-sdk/android/answer-call.md +0 -852
- package/resource/doc/callkit/core-sdk/android/make-call.md +0 -954
- package/resource/doc/callkit/core-sdk/android/offline-push.md +0 -361
- package/resource/doc/callkit/core-sdk/flutter/answer-call.md +0 -1160
- package/resource/doc/callkit/core-sdk/flutter/make-call.md +0 -1205
- package/resource/doc/callkit/core-sdk/ios/answer-call.md +0 -1090
- package/resource/doc/callkit/core-sdk/ios/make-call.md +0 -1248
- package/resource/doc/callkit/core-sdk/ios/offline-push.md +0 -485
- package/resource/doc/callkit/core-sdk/uni-app/answer-call.md +0 -950
- package/resource/doc/callkit/core-sdk/uni-app/make-call.md +0 -1052
- package/resource/doc/callkit/faq/common/error-code.md +0 -47
- package/resource/doc/callkit/faq/flutter-faq.md +0 -115
- package/resource/doc/callkit/faq/ios-faq.md +0 -115
- package/resource/doc/callkit/faq/web-faq.md +0 -36
- package/resource/doc/callkit/preset/android/api.md +0 -296
- package/resource/doc/callkit/preset/flutter/api.md +0 -410
- package/resource/doc/callkit/preset/flutter/integration.md +0 -164
- package/resource/doc/callkit/preset/ios/api.md +0 -80
- package/resource/doc/callkit/preset/ios/integration.md +0 -187
- package/resource/doc/callkit/preset/react/api.md +0 -501
- package/resource/doc/callkit/preset/react/integration.md +0 -86
- package/resource/doc/callkit/preset/vue/api.md +0 -501
- package/resource/doc/callkit/preset/vue/integration.md +0 -83
- package/resource/doc/chatkit/android/faq.md +0 -111
- package/resource/doc/chatkit/android/features/theme.md +0 -219
- package/resource/doc/chatkit/android/integration.md +0 -490
- package/resource/doc/chatkit/faq/android_sdk/client-api.md +0 -281
- package/resource/doc/chatkit/faq/common/product.md +0 -7
- package/resource/doc/chatkit/faq/common/server.md +0 -44
- package/resource/doc/chatkit/faq/common/server_error_code.md +0 -74
- package/resource/doc/chatkit/faq/flutter_sdk/client-api.md +0 -199
- package/resource/doc/chatkit/faq/flutter_sdk/faq.md +0 -53
- package/resource/doc/chatkit/faq/ios_sdk/client-api.md +0 -235
- package/resource/doc/chatkit/faq/web_sdk/error_code.md +0 -47
- package/resource/doc/chatkit/faq/web_sdk/faq.md +0 -287
- package/resource/doc/chatkit/flutter/faq.md +0 -23
- package/resource/doc/chatkit/flutter/features/theme.md +0 -235
- package/resource/doc/chatkit/flutter/integration.md +0 -344
- package/resource/doc/chatkit/ios/faq.md +0 -111
- package/resource/doc/chatkit/ios/features/theme.md +0 -267
- package/resource/doc/chatkit/react/components/avatar.md +0 -104
- package/resource/doc/chatkit/react/components/chat-header.md +0 -148
- package/resource/doc/chatkit/react/components/chat-setting.md +0 -57
- package/resource/doc/chatkit/react/components/chat.md +0 -38
- package/resource/doc/chatkit/react/components/component-list.md +0 -37
- package/resource/doc/chatkit/react/components/conversation-actions.md +0 -174
- package/resource/doc/chatkit/react/components/conversation-list.md +0 -333
- package/resource/doc/chatkit/react/components/conversation-preview.md +0 -118
- package/resource/doc/chatkit/react/components/conversation-search.md +0 -60
- package/resource/doc/chatkit/react/components/message-list.md +0 -293
- package/resource/doc/chatkit/react/components/tuikit.md +0 -34
- package/resource/doc/chatkit/react/faq.md +0 -26
- package/resource/doc/chatkit/react/integration.md +0 -416
- package/resource/doc/chatkit/vue/components/avatar.md +0 -104
- package/resource/doc/chatkit/vue/components/chat-header.md +0 -148
- package/resource/doc/chatkit/vue/components/chat-setting.md +0 -62
- package/resource/doc/chatkit/vue/components/chat.md +0 -45
- package/resource/doc/chatkit/vue/components/component-list.md +0 -87
- package/resource/doc/chatkit/vue/components/contact-list.md +0 -271
- package/resource/doc/chatkit/vue/components/conversation-actions.md +0 -228
- package/resource/doc/chatkit/vue/components/conversation-list.md +0 -320
- package/resource/doc/chatkit/vue/components/conversation-preview.md +0 -213
- package/resource/doc/chatkit/vue/components/message-input.md +0 -1054
- package/resource/doc/chatkit/vue/components/message-list.md +0 -433
- package/resource/doc/chatkit/vue/components/tuikit.md +0 -31
- package/resource/doc/chatkit/vue/components/userpicker.md +0 -256
- package/resource/doc/chatkit/vue/faq.md +0 -36
- package/resource/doc/chatkit/vue/integration.md +0 -428
- package/resource/doc/livekit/core-sdk/live/flutter/live-host-interaction.md +0 -866
- package/resource/doc/livekit/faq/common/error-code.md +0 -88
- package/resource/doc/livekit/preset/live/vue/api-reference/index.md +0 -780
- package/resource/doc/livekit/preset/live/vue/components/co-guest-panel.md +0 -91
- package/resource/doc/livekit/preset/live/vue/components/live-scene-panel.md +0 -112
- package/resource/doc/livekit/preset/live/vue/components/stream-mixer.md +0 -215
- package/resource/doc/livekit/preset/live/vue/live-player-h5-integration.md +0 -300
- package/resource/doc/roomkit/faq/common/error-code.md +0 -67
- package/resource/doc/roomkit/vue/features/call-user-to-room.md +0 -220
- package/resource/doc/roomkit/vue/features/device-state.md +0 -460
- package/resource/doc/roomkit/vue/features/free-beauty-panel.md +0 -215
- package/resource/doc/roomkit/vue/features/room-chat.md +0 -369
- package/resource/doc/roomkit/vue/features/room-state.md +0 -282
- package/resource/doc/roomkit/vue/features/schedule-room.md +0 -318
- package/resource/doc/roomkit/vue/features/screen-share.md +0 -265
- package/resource/doc/roomkit/vue/features/virtual-background.md +0 -271
- package/resource/doc/roomkit/vue/integration.md +0 -315
- package/resource/doc/rtcengine/faq/common/error_code.md +0 -1
- package/resource/doc/rtcengine/faq/web_sdk/.gitkeep +0 -0
- package/resource/doc/rtcengine/web/.gitkeep +0 -0
- package/resource/doc/rtcengine/web/how_to_run_web_sdk_demo.md +0 -59
- package/resource/doc/trtc/C++/ITRTCCloud.md +0 -1970
- package/resource/doc/trtc/C++/ITRTCStatistics.md +0 -70
- package/resource/doc/trtc/C++/ITXAudioEffectManager.md +0 -469
- package/resource/doc/trtc/C++/ITXDeviceManager.md +0 -387
- package/resource/doc/trtc/C++/TRTCCloudCallback.md +0 -1082
- package/resource/doc/trtc/C++/TRTCTypeDef.md +0 -925
- package/resource/doc/trtc/C++/TXLiteAVCode.md +0 -129
- package/resource/doc/trtc/android/TRTCCloud.md +0 -1815
- package/resource/doc/trtc/android/TRTCCloudDef.md +0 -992
- package/resource/doc/trtc/android/TRTCCloudListener.md +0 -1004
- package/resource/doc/trtc/android/TRTCStatistics.md +0 -65
- package/resource/doc/trtc/android/TXAudioEffectManager.md +0 -469
- package/resource/doc/trtc/android/TXBeautyManager.md +0 -402
- package/resource/doc/trtc/android/TXDeviceManager.md +0 -173
- package/resource/doc/trtc/android/TXLiteAVCode.md +0 -127
- package/resource/doc/trtc/iOS/TRTCCloud.md +0 -2028
- package/resource/doc/trtc/iOS/TRTCCloudDef.md +0 -958
- package/resource/doc/trtc/iOS/TRTCCloudDelegate.md +0 -1046
- package/resource/doc/trtc/iOS/TRTCStatistics.md +0 -65
- package/resource/doc/trtc/iOS/TXAudioEffectManager.md +0 -397
- package/resource/doc/trtc/iOS/TXBeautyManager.md +0 -403
- package/resource/doc/trtc/iOS/TXDeviceManager.md +0 -381
- package/resource/doc/trtc/iOS/TXLiteAVCode.md +0 -130
- package/server-config.js.map +0 -1
- package/server.js.map +0 -1
- package/streamable-http.js.map +0 -1
- package/tools/call/get_callkit_api.js +0 -33
- package/tools/call/get_callkit_api.js.map +0 -1
- package/tools/call/get_native_call_uikit_integration.js.map +0 -1
- package/tools/call/get_native_callkit_core_integration.js.map +0 -1
- package/tools/call/get_web_call_uikit_integration.js.map +0 -1
- package/tools/chat/get_native_chat_uikit_feature_detail.js +0 -35
- package/tools/chat/get_native_chat_uikit_feature_detail.js.map +0 -1
- package/tools/chat/get_native_chat_uikit_integration.js.map +0 -1
- package/tools/chat/get_web_chat_uikit_component_detail.js +0 -35
- package/tools/chat/get_web_chat_uikit_component_detail.js.map +0 -1
- package/tools/chat/get_web_chat_uikit_integration.js.map +0 -1
- package/tools/common/get_faq.js +0 -266
- package/tools/common/get_faq.js.map +0 -1
- package/tools/common/get_usersig.js.map +0 -1
- package/tools/common/present_framework_choice.js.map +0 -1
- package/tools/common/record_answer.js.map +0 -1
- package/tools/common/record_feedback.js.map +0 -1
- package/tools/common/record_skill_session.js +0 -69
- package/tools/common/record_skill_session.js.map +0 -1
- package/tools/definitions/get_callkit_api_def.js +0 -29
- package/tools/definitions/get_callkit_api_def.js.map +0 -1
- package/tools/definitions/get_faq_def.js +0 -47
- package/tools/definitions/get_faq_def.js.map +0 -1
- package/tools/definitions/get_native_call_uikit_integration_def.js.map +0 -1
- package/tools/definitions/get_native_callkit_core_integration_def.js.map +0 -1
- package/tools/definitions/get_native_chat_uikit_feature_detail_def.js +0 -31
- package/tools/definitions/get_native_chat_uikit_feature_detail_def.js.map +0 -1
- package/tools/definitions/get_native_chat_uikit_integration_def.js.map +0 -1
- package/tools/definitions/get_native_livekit_core_features_def.js +0 -34
- package/tools/definitions/get_native_livekit_core_features_def.js.map +0 -1
- package/tools/definitions/get_native_livekit_core_integration_def.js.map +0 -1
- package/tools/definitions/get_native_trtc_sdk_docs_def.js +0 -32
- package/tools/definitions/get_native_trtc_sdk_docs_def.js.map +0 -1
- package/tools/definitions/get_usersig_def.js.map +0 -1
- package/tools/definitions/get_web_call_uikit_integration_def.js.map +0 -1
- package/tools/definitions/get_web_chat_uikit_component_detail_def.js +0 -31
- package/tools/definitions/get_web_chat_uikit_component_detail_def.js.map +0 -1
- package/tools/definitions/get_web_chat_uikit_integration_def.js.map +0 -1
- package/tools/definitions/get_web_live_uikit_integration_def.js.map +0 -1
- package/tools/definitions/get_web_livekit_api_def.js +0 -30
- package/tools/definitions/get_web_livekit_api_def.js.map +0 -1
- package/tools/definitions/get_web_livekit_component_detail_def.js +0 -32
- package/tools/definitions/get_web_livekit_component_detail_def.js.map +0 -1
- package/tools/definitions/get_web_room_uikit_integration_def.js.map +0 -1
- package/tools/definitions/get_web_roomkit_feature_detail_def.js +0 -31
- package/tools/definitions/get_web_roomkit_feature_detail_def.js.map +0 -1
- package/tools/definitions/get_web_trtc_sdk_api_def.js +0 -27
- package/tools/definitions/get_web_trtc_sdk_api_def.js.map +0 -1
- package/tools/definitions/get_web_trtc_sdk_integration_def.js +0 -27
- package/tools/definitions/get_web_trtc_sdk_integration_def.js.map +0 -1
- package/tools/definitions/get_web_trtc_sdk_plugin_def.js +0 -27
- package/tools/definitions/get_web_trtc_sdk_plugin_def.js.map +0 -1
- package/tools/definitions/present_framework_choice_def.js.map +0 -1
- package/tools/definitions/record_answer_def.js.map +0 -1
- package/tools/definitions/record_feedback_def.js.map +0 -1
- package/tools/definitions/record_skill_session_def.js +0 -31
- package/tools/definitions/record_skill_session_def.js.map +0 -1
- package/tools/index.js.map +0 -1
- package/tools/live/get_native_livekit_core_features.js +0 -68
- package/tools/live/get_native_livekit_core_features.js.map +0 -1
- package/tools/live/get_native_livekit_core_integration.js.map +0 -1
- package/tools/live/get_web_live_uikit_integration.js.map +0 -1
- package/tools/live/get_web_livekit_api.js +0 -33
- package/tools/live/get_web_livekit_api.js.map +0 -1
- package/tools/live/get_web_livekit_component_detail.js +0 -35
- package/tools/live/get_web_livekit_component_detail.js.map +0 -1
- package/tools/room/get_web_room_uikit_integration.js.map +0 -1
- package/tools/room/get_web_roomkit_feature_detail.js +0 -69
- package/tools/room/get_web_roomkit_feature_detail.js.map +0 -1
- package/tools/rtcengine/get_web_trtc_sdk_api.js +0 -32
- package/tools/rtcengine/get_web_trtc_sdk_api.js.map +0 -1
- package/tools/rtcengine/get_web_trtc_sdk_integration.js +0 -32
- package/tools/rtcengine/get_web_trtc_sdk_integration.js.map +0 -1
- package/tools/rtcengine/get_web_trtc_sdk_plugin.js +0 -32
- package/tools/rtcengine/get_web_trtc_sdk_plugin.js.map +0 -1
- package/tools/trtc/get_native_trtc_sdk_docs.js +0 -74
- package/tools/trtc/get_native_trtc_sdk_docs.js.map +0 -1
- package/utils/build-session-directives.js +0 -120
- package/utils/build-session-directives.js.map +0 -1
- package/utils/generate-structured-result.js.map +0 -1
- package/utils/generate-usersig.js.map +0 -1
- package/utils/get-device-identifier.js.map +0 -1
- package/utils/get-doc-content.js.map +0 -1
- package/utils/handle-framework.js +0 -9
- package/utils/handle-framework.js.map +0 -1
- package/utils/handle-state-name.js +0 -29
- package/utils/handle-state-name.js.map +0 -1
- package/utils/http-get.js.map +0 -1
- package/utils/http-post.js.map +0 -1
- package/utils/report-cls-client.js.map +0 -1
- package/utils/report-es-client.js.map +0 -1
- package/utils/report-runtime-error-cls-client.js +0 -91
- package/utils/report-runtime-error-cls-client.js.map +0 -1
- /package/resource/{doc/livekit/preset/live/vue/faq.md → knowledge/push/config/donut.md} +0 -0
- /package/resource/{doc/roomkit/vue/faq.md → knowledge/push/integration/donut.md} +0 -0
- /package/resource/{doc → knowledge}/rtcengine/web/api.md +0 -0
- /package/resource/{doc/rtcengine/faq/web/web.md → knowledge/rtcengine/web/faq.md} +0 -0
- /package/resource/{doc → knowledge}/rtcengine/web/how_to_integrated_web_sdk.md +0 -0
- /package/resource/{doc → knowledge}/rtcengine/web/plugin/20-advanced-customized-capture-rendering.md +0 -0
- /package/resource/{doc → knowledge}/rtcengine/web/plugin/28-advanced-beauty.md +0 -0
- /package/resource/{doc → knowledge}/rtcengine/web/plugin/30-advanced-cross-room-link.md +0 -0
- /package/resource/{doc → knowledge}/rtcengine/web/plugin/36-advanced-virtual-background.md +0 -0
- /package/resource/{doc → knowledge}/rtcengine/web/plugin/37-advanced-voice-changer.md +0 -0
- /package/resource/{doc → knowledge}/rtcengine/web/plugin/39-advanced-video-decoder.md +0 -0
- /package/resource/{doc → knowledge}/rtcengine/web/plugin/40-advanced-video-mixer.md +0 -0
- /package/resource/{doc → knowledge}/rtcengine/web/plugin/41-advanced-small-stream-auto-switcher.md +0 -0
- /package/resource/{doc → knowledge}/rtcengine/web/plugin/42-advanced-realtime-transcriber.md +0 -0
- /package/resource/{doc → knowledge}/rtcengine/web/plugin/43-advanced-face-detection.md +0 -0
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
## **Component Overview**
|
|
2
|
+
|
|
3
|
+
Search component provides users with a complete set of features, including a search box, search results display, and navigation within the interface. The component supports user search, group search, and message search, and offers a comprehensive set of interactive webhook interfaces.
|
|
4
|
+
|
|
5
|
+
> **Note:**
|
|
6
|
+
>
|
|
7
|
+
|
|
8
|
+
> Search function is available in the Pro edition or Enterprise edition. You can use this feature after purchasing the Pro edition or Enterprise edition package. For details, see [Pricing Information](https://trtc.io/document/67650).
|
|
9
|
+
>
|
|
10
|
+
|
|
11
|
+
| <strong>Search Entry</strong> | <strong>Search Results</strong> |
|
|
12
|
+
| --- | --- |
|
|
13
|
+
| | |
|
|
14
|
+
|
|
15
|
+
## Component Integration
|
|
16
|
+
|
|
17
|
+
The Search component is included in TUIKit Compose. To use the Search component, integrate TUIKit Compose into your project. For integration instructions, refer to the [TUIKit Compose documentation](https://www.tencentcloud.com/document/product/1047/77459) and complete the login process.
|
|
18
|
+
|
|
19
|
+
## Component Structure
|
|
20
|
+
|
|
21
|
+
`SearchScreen` is the entry point for the Search component. It only exposes the initialization method for the search component; all other logic is encapsulated within `SearchScreen`.
|
|
22
|
+
| Method | Parameter | Description |
|
|
23
|
+
| --- | --- | --- |
|
|
24
|
+
| SearchScreen | <code>modifier: Modifier</code> | Used in Jetpack Compose to set the style, layout, behavior, and appearance of the component. |
|
|
25
|
+
| <code>onBack: () -> Unit</code> | Webhook triggered when the Cancel button is clicked; optional parameter. | |
|
|
26
|
+
| <code>onContactSelect: (FriendSearchInfo) -> Unit</code> | Webhook triggered when a searched contact item is clicked; optional parameter. | |
|
|
27
|
+
| <code>onGroupSelect: (GroupSearchInfo) -> Unit</code> | Webhook triggered when a searched group item is clicked; optional parameter. | |
|
|
28
|
+
| <code>onConversationSelect: (MessageSearchResultItem) -> Unit</code> | Webhook triggered when a searched conversation item is clicked; optional parameter. | |
|
|
29
|
+
| <code>onMessageSelect: (MessageInfo) -> Unit</code> | Webhook triggered when a searched message item is clicked; optional parameter. | |
|
|
30
|
+
|
|
31
|
+
## Basic Usage
|
|
32
|
+
|
|
33
|
+
The routing logic for search results in `SearchScreen` is as follows:
|
|
34
|
+
- Automatic Routing: On the search results page, clicking the More button or a chat record entry will automatically trigger internal navigation handled by the component.
|
|
35
|
+
|
|
36
|
+
- Custom Routing: When a user clicks a specific contact, group, conversation, or message, the component triggers the corresponding webhook (`onContactSelect`, `onGroupSelect`, `onConversationSelect`, or `onMessageSelect`). You must implement custom navigation in these webhook handlers (for example, navigating to your custom chat interface).
|
|
37
|
+
|
|
38
|
+
Example:
|
|
39
|
+
|
|
40
|
+
Initialize the `SearchScreen` component as shown below:
|
|
41
|
+
|
|
42
|
+
``` java
|
|
43
|
+
SearchScreen(
|
|
44
|
+
modifier = Modifier.Companion
|
|
45
|
+
.fillMaxSize()
|
|
46
|
+
.statusBarsPadding()
|
|
47
|
+
.navigationBarsPadding(),
|
|
48
|
+
onBack = {
|
|
49
|
+
// Cancel button click event
|
|
50
|
+
},
|
|
51
|
+
onContactSelect = {
|
|
52
|
+
// Contact click event
|
|
53
|
+
},
|
|
54
|
+
onGroupSelect = {
|
|
55
|
+
// Group click event
|
|
56
|
+
},
|
|
57
|
+
onConversationSelect = {
|
|
58
|
+
// Conversation click event
|
|
59
|
+
},
|
|
60
|
+
onMessageSelect = {
|
|
61
|
+
// Message click event
|
|
62
|
+
}
|
|
63
|
+
)
|
|
64
|
+
```
|
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
TUIKit Compose offers flexible appearance customization with support for Light, Dark, and System theme modes, along with customizable primary colors. A simple configuration enables theme switching and brand color application throughout your app.
|
|
2
|
+
|
|
3
|
+
For example, in the message list, you can see how different theme modes and primary colors affect the UI:
|
|
4
|
+
| <strong>Light + Default Color</strong> | <strong>Light + Orange</strong> | <strong>Dark + Default Color</strong> | <strong>Dark + Green Theme</strong> |
|
|
5
|
+
| --- | --- | --- | --- |
|
|
6
|
+
| | | | |
|
|
7
|
+
|
|
8
|
+
## Key Features
|
|
9
|
+
|
|
10
|
+
**Theme Mode**
|
|
11
|
+
- Light Mode: Bright interface for daytime use.
|
|
12
|
+
|
|
13
|
+
- Dark Mode: Dim interface for nighttime use.
|
|
14
|
+
|
|
15
|
+
- Follow System: Automatically matches the system appearance setting.
|
|
16
|
+
|
|
17
|
+
**Primary Color Customization**
|
|
18
|
+
|
|
19
|
+
- Preset Theme Colors: Includes standard options like blue, green, red, orange, and more.
|
|
20
|
+
|
|
21
|
+
- Custom Theme Color: Supports any Hex color value.
|
|
22
|
+
|
|
23
|
+
- Intelligent Palette Generation: Automatically creates a palette with 10 color shades.
|
|
24
|
+
|
|
25
|
+
- Quick Reset: Instantly revert to the default theme color.
|
|
26
|
+
|
|
27
|
+
## API Reference
|
|
28
|
+
|
|
29
|
+
All theme configuration and queries are handled through concise APIs in `ThemeState`.
|
|
30
|
+
|
|
31
|
+
### Set Theme Mode
|
|
32
|
+
| Method | Parameter | Return Value | Description |
|
|
33
|
+
| --- | --- | --- | --- |
|
|
34
|
+
| <code>setThemeMode</code> | <code>ThemeMode</code> | <code>Unit</code> | Sets the display mode, automatically saves and refreshes.<br>- <code>ThemeMode.SYSTEM</code>: Follows system appearance.<br>- <code>ThemeMode.LIGHT</code>: Forces light mode.<br>- <code>ThemeMode.DARK</code>: Forces dark mode. |
|
|
35
|
+
|
|
36
|
+
### Set Primary Color
|
|
37
|
+
|
|
38
|
+
|Method|Parameter|Return Value|Description|
|
|
39
|
+
|---------|---------|---------|---------|
|
|
40
|
+
|`setPrimaryColor`|`String`|`Unit`|Sets the primary color using a Hex value (e.g., "#1C66E5").|
|
|
41
|
+
|`clearPrimaryColor`|None|`Unit`|Resets the primary color to the default blue.|
|
|
42
|
+
|
|
43
|
+
> **Note:**
|
|
44
|
+
>
|
|
45
|
+
> - When you call setThemeMode or setPrimaryColor, your settings are automatically saved to persistent storage. No manual saving is required. The configuration will be loaded automatically the next time the app starts.
|
|
46
|
+
> - Changing theme settings automatically clears the cache to ensure real-time color updates. You do not need to manage the cache manually.
|
|
47
|
+
> - Avoid frequent theme switching in your code (for example, do not call these APIs in a loop).
|
|
48
|
+
|
|
49
|
+
### Query ThemeState Information
|
|
50
|
+
|
|
51
|
+
You can check the current theme configuration using the following read-only properties:
|
|
52
|
+
|
|
53
|
+
|Property|Type|Description|
|
|
54
|
+
|---------|---------|---------|
|
|
55
|
+
|`currentMode`|`ThemeMode`|Current theme mode.|
|
|
56
|
+
|`currentPrimaryColor`|`String?`|Current primary color (Hex format).|
|
|
57
|
+
|`hasCustomPrimaryColor`|`Boolean`|Indicates if a custom primary color is set.|
|
|
58
|
+
|`isDarkMode`|`Boolean`|Indicates if the current mode is dark mode.|
|
|
59
|
+
|
|
60
|
+
## Usage
|
|
61
|
+
|
|
62
|
+
This section explains how to integrate theme and primary color customization into your app, with three approaches ranging from basic to advanced.
|
|
63
|
+
|
|
64
|
+
### Option A: Configure with AppBuilder (Recommended)
|
|
65
|
+
|
|
66
|
+
AppBuilder is a convenient tool for customizing features and UI, managed through a unified JSON configuration file. It’s ideal for keeping Web and Native apps visually consistent.
|
|
67
|
+
|
|
68
|
+
Try AppBuilder in the [Chat Web Demo Center](https://trtc.io/demo/homepage/#/detail). Entry point:
|
|
69
|
+
|
|
70
|
+
While the Chat Web Demo Center does not currently support real-time preview for mobile, mobile projects do support AppBuilder configuration.
|
|
71
|
+
|
|
72
|
+
To apply your custom configuration from the Web Demo Center to your mobile project, follow these two steps:
|
|
73
|
+
1. Download the configuration file.
|
|
74
|
+
|
|
75
|
+
2. Add the appConfig.json file to your Android project.
|
|
76
|
+
|
|
77
|
+
#### 1. Download the Configuration File
|
|
78
|
+
|
|
79
|
+
Go to the [Chat Web Demo Center](https://trtc.io/demo/homepage/#/detail) and download the appConfig.json configuration file. Download path:
|
|
80
|
+
|
|
81
|
+
The contents of `appConfig.json` map directly to the configuration options in AppBuilder. Appearance settings are under the `theme` section:
|
|
82
|
+
``` json
|
|
83
|
+
{
|
|
84
|
+
"theme": {
|
|
85
|
+
"mode": "light", // Theme mode: light - Light mode, dark - Dark mode, system - Follow system
|
|
86
|
+
"primaryColor": "#E65100" // Primary color, hexadecimal color value
|
|
87
|
+
},
|
|
88
|
+
"messageList": {
|
|
89
|
+
"alignment": "two-sided",
|
|
90
|
+
"enableReadReceipt": false,
|
|
91
|
+
"messageActionList": [
|
|
92
|
+
"copy",
|
|
93
|
+
"recall",
|
|
94
|
+
"quote",
|
|
95
|
+
"forward",
|
|
96
|
+
"delete"
|
|
97
|
+
]
|
|
98
|
+
},
|
|
99
|
+
"conversationList": {
|
|
100
|
+
"enableCreateConversation": true,
|
|
101
|
+
"conversationActionList": [
|
|
102
|
+
"delete",
|
|
103
|
+
"mute",
|
|
104
|
+
"pin",
|
|
105
|
+
"markUnread"
|
|
106
|
+
]
|
|
107
|
+
},
|
|
108
|
+
"messageInput": {
|
|
109
|
+
"hideSendButton": false,
|
|
110
|
+
"attachmentPickerMode": "collapsed"
|
|
111
|
+
},
|
|
112
|
+
"search": {
|
|
113
|
+
"hideSearch": false
|
|
114
|
+
},
|
|
115
|
+
"avatar": {
|
|
116
|
+
"shape": "circular"
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
**Configuration Option Description**
|
|
122
|
+
|
|
123
|
+
|Parameter|Type|Optional Values|Description|
|
|
124
|
+
|---------|---------|---------|---------|
|
|
125
|
+
|`mode`|String|`"system"`, `"light"`, `"dark"`|Theme mode|
|
|
126
|
+
|`primaryColor`|String|Hex color value, e.g., `"#0ABF77"`|Primary color|
|
|
127
|
+
|
|
128
|
+
#### 2. Add the Configuration File to Your Project
|
|
129
|
+
|
|
130
|
+
Drag appConfig.json into your project. For example, in the open-source demo [TUIKit Android Compose](https://github.com/Tencent-RTC/TUIKit_Android_Compose/blob/main/chat/demo/app/src/main/assets/appConfig.json) on GitHub, appConfig.json is located in the assets folder under demo/app:
|
|
131
|
+
|
|
132
|
+
Once you’ve added the file, you don’t need to write any extra code. When you launch the app, TUIKit Compose components will automatically use the theme mode and primary color specified in appConfig.json.
|
|
133
|
+
|
|
134
|
+
### Option B: Set Theme Mode in Code
|
|
135
|
+
|
|
136
|
+
You can set the theme mode directly using the `setThemeMode` API. Example:
|
|
137
|
+
``` swift
|
|
138
|
+
val themeState = ThemeState.shared
|
|
139
|
+
Column {
|
|
140
|
+
Button(onClick = {
|
|
141
|
+
themeState.setThemeMode(ThemeMode.SYSTEM)
|
|
142
|
+
}) { Text(text = "Follow System") }
|
|
143
|
+
Button(onClick = {
|
|
144
|
+
themeState.setThemeMode(ThemeMode.LIGHT)
|
|
145
|
+
}) { Text(text = "Light Mode") }
|
|
146
|
+
Button(onClick = {
|
|
147
|
+
themeState.setThemeMode(ThemeMode.DARK)
|
|
148
|
+
}) { Text(text = "Dark Mode") }
|
|
149
|
+
}
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
### Approach 3: Set Primary Color in Code
|
|
153
|
+
|
|
154
|
+
Set the primary color using the `setPrimaryColor` API. Just provide a Hex color value, and all TUIKit Compose components will automatically use matching colors from the same palette for UI rendering. No manual color adjustments are needed. Example:
|
|
155
|
+
``` swift
|
|
156
|
+
Column {
|
|
157
|
+
var text: String by remember { mutableStateOf("#1C66E5") }
|
|
158
|
+
|
|
159
|
+
fun isValidHexColor(): Boolean {
|
|
160
|
+
return text.matches(Regex("^#[0-9A-Fa-f]{6}$"))
|
|
161
|
+
}
|
|
162
|
+
BasicTextField(
|
|
163
|
+
value = text,
|
|
164
|
+
onValueChange = { text = it },
|
|
165
|
+
modifier = Modifier
|
|
166
|
+
.fillMaxWidth()
|
|
167
|
+
.padding(16.dp)
|
|
168
|
+
)
|
|
169
|
+
Button(
|
|
170
|
+
enabled = isValidHexColor(),
|
|
171
|
+
onClick = {
|
|
172
|
+
themeState.setPrimaryColor(text)
|
|
173
|
+
}) {
|
|
174
|
+
Text("Apply Primary Color")
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
> **Usage Recommendations****:**
|
|
180
|
+
>
|
|
181
|
+
> - For most apps, using the JSON configuration file is recommended. It’s simple, reliable, and ensures cross-platform consistency.
|
|
182
|
+
> - Use colors from themeState.colors throughout your app to maintain a consistent look when switching themes.
|
|
183
|
+
|
|
184
|
+
## FAQs
|
|
185
|
+
|
|
186
|
+
### **How do I check if the current mode is dark mode?**
|
|
187
|
+
``` java
|
|
188
|
+
if themeState.isDarkMode {
|
|
189
|
+
// Currently in dark mode
|
|
190
|
+
} else {
|
|
191
|
+
// Currently in light mode
|
|
192
|
+
}
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
### **Can I set transparency?**
|
|
196
|
+
|
|
197
|
+
No. Only 6-digit Hex format (RGB) is supported for the primary color. 8-digit Hex (RGBA) is not supported.
|
|
198
|
+
|
|
199
|
+
### **How do I reset to the default theme?**
|
|
200
|
+
``` swift
|
|
201
|
+
themeState.clearPrimaryColor() // Remove custom primary color
|
|
202
|
+
themeState.setThemeMode(ThemeMode.SYSTEM) // Switch to system mode
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
### **Where is the theme configuration saved?**
|
|
206
|
+
|
|
207
|
+
Theme settings are stored in the app’s persistent storage. If the app is uninstalled, the configuration is lost and defaults are restored on reinstallation.
|
|
208
|
+
|
|
209
|
+
### **How do I get the full current theme configuration?**
|
|
210
|
+
``` swift
|
|
211
|
+
val config = themeState.currentTheme
|
|
212
|
+
print("Mode: ${config.mode}")
|
|
213
|
+
print("Primary Color: ${config.primaryColor ?: "Default"}")
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
### **Can I set both mode and primary color at the same time?**
|
|
217
|
+
|
|
218
|
+
Yes. Call both methods separately; the system will automatically merge the settings:
|
|
219
|
+
``` swift
|
|
220
|
+
themeState.setThemeMode(ThemeMode.DARK)
|
|
221
|
+
themeState.setPrimaryColor("#0ABF77")
|
|
222
|
+
```
|
|
@@ -0,0 +1,300 @@
|
|
|
1
|
+
TUIKit is a UI component library built on the Chat SDK. It enables rapid implementation of chat, conversation, search, relationship chain, group, and other features through UI components. This document describes how to quickly integrate TUIKit and implement core features.
|
|
2
|
+
|
|
3
|
+
## Key Concepts
|
|
4
|
+
|
|
5
|
+
TUIKit provides a complete set of instant messaging UI components. It depends on the **AtomicXCore data layer** and can be used to build various functional pages.
|
|
6
|
+
- Page layer: Complete functional pages built on TUIKit components, including ChatPageView, ContactsPageView, and ConversationsPageView. You can use them directly.
|
|
7
|
+
|
|
8
|
+
- TUIKit (UI component layer): View UI components, not Compose components, built on AtomicXCore. You can embed them into your existing app pages.
|
|
9
|
+
|
|
10
|
+
- AtomicXCore (data layer): Provides data management and business logic, including various stores and managers.
|
|
11
|
+
|
|
12
|
+
## Prerequisites
|
|
13
|
+
- Android Studio 2022.3.1 or later, JDK 17.
|
|
14
|
+
|
|
15
|
+
- A physical device or emulator running Android 6.0 or later.
|
|
16
|
+
|
|
17
|
+
- Your project must support Kotlin, because TUIKit is developed in Kotlin.
|
|
18
|
+
|
|
19
|
+
- minSdk >= 23.
|
|
20
|
+
|
|
21
|
+
- A valid Tencent Cloud account and Chat application. See Activate the Service to obtain the following information from the Console:
|
|
22
|
+
|
|
23
|
+
- SDKAppID: The ID of the Chat application obtained from the Console. It is the unique identifier of the application.
|
|
24
|
+
|
|
25
|
+
- SDKSecretKey: The application secret key.
|
|
26
|
+
|
|
27
|
+
>
|
|
28
|
+
|
|
29
|
+
> **Version Compatibility Notice:**
|
|
30
|
+
>
|
|
31
|
+
>
|
|
32
|
+
|
|
33
|
+
> To ensure a stable build environment, strictly follow the official compatibility requirements:
|
|
34
|
+
>
|
|
35
|
+
> - For compatibility between Gradle, Android Gradle Plugin, JDK, and Android Studio, see the Android official documentation: [Release Notes](https://developer.android.com/build/releases/gradle-plugin#updating-gradle)
|
|
36
|
+
> - For the mapping between Kotlin, Android Gradle Plugin, and Gradle versions, see the Kotlin official documentation: [Kotlin-Gradle Plugin Compatibility](https://kotlinlang.org/docs/gradle-configure-project.html#apply-the-plugin)
|
|
37
|
+
|
|
38
|
+
> We recommend selecting a version combination that fully matches your project requirements according to these guidelines.
|
|
39
|
+
>
|
|
40
|
+
|
|
41
|
+
## Integrate the TUIKit
|
|
42
|
+
|
|
43
|
+
### Download the Source Code
|
|
44
|
+
|
|
45
|
+
Download the source code from the GitHub repository [Tencent-RTC/TUIKit_Android](https://github.com/Tencent-RTC/TUIKit_Android). The project directory structure is as follows:
|
|
46
|
+
``` text
|
|
47
|
+
TUIKit_Android/
|
|
48
|
+
├── atomic_x/ # Base UI component library (required by Chat)
|
|
49
|
+
├── call/
|
|
50
|
+
│ └── tuicallkit-kt/ # Audio/video call component (required by Chat)
|
|
51
|
+
└── chat/
|
|
52
|
+
├── demo/ # Chat View Demo project
|
|
53
|
+
└── uikit/ # Chat View UI component library
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### Integrate Components
|
|
57
|
+
1. Copy the `chat`, `atomic_x`, and optionally `call` folders from the repository root to your project root directory. The directory structure after copying is as follows:
|
|
58
|
+
|
|
59
|
+
``` text
|
|
60
|
+
YourApplication/
|
|
61
|
+
├── app/ # Your app module
|
|
62
|
+
├── atomic_x/ # Base UI component library (required)
|
|
63
|
+
├── call/ # Audio/video call component (optional)
|
|
64
|
+
│ └── tuicallkit-kt/
|
|
65
|
+
├── chat/ # Chat source code
|
|
66
|
+
│ ├── demo/ # Demo project (for reference, optional)
|
|
67
|
+
│ └── uikit/ # Chat UIKit component library (required)
|
|
68
|
+
├── settings.gradle.kts
|
|
69
|
+
└── build.gradle.kts
|
|
70
|
+
```
|
|
71
|
+
2. Add the corresponding modules in `settings.gradle.kts`. Adjust the relative paths based on where you actually place the source code:
|
|
72
|
+
|
|
73
|
+
【Kotlin DSL】
|
|
74
|
+
``` kotlin
|
|
75
|
+
// settings.gradle.kts
|
|
76
|
+
|
|
77
|
+
// Include the Chat UIKit component library (required)
|
|
78
|
+
include(":uikit")
|
|
79
|
+
project(":uikit").projectDir = file("${settingsDir.path}/chat/uikit")
|
|
80
|
+
|
|
81
|
+
// Include the AtomicX base UI component library (required)
|
|
82
|
+
include(":atomic_x")
|
|
83
|
+
project(":atomic_x").projectDir = file("${settingsDir.path}/atomic_x")
|
|
84
|
+
|
|
85
|
+
// Include the audio/video call component (optional, required for audio/video calls)
|
|
86
|
+
include(":tuicallkit-kt")
|
|
87
|
+
project(":tuicallkit-kt").projectDir = file("${settingsDir.path}/call/tuicallkit-kt")
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
【Groovy DSL】
|
|
91
|
+
``` groovy
|
|
92
|
+
// settings.gradle
|
|
93
|
+
|
|
94
|
+
// Include the Chat UIKit component library (required)
|
|
95
|
+
include ':uikit'
|
|
96
|
+
project(':uikit').projectDir = new File(settingsDir, 'chat/uikit')
|
|
97
|
+
|
|
98
|
+
// Include the AtomicX base UI component library (required)
|
|
99
|
+
include ':atomic_x'
|
|
100
|
+
project(':atomic_x').projectDir = new File(settingsDir, 'atomic_x')
|
|
101
|
+
|
|
102
|
+
// Include the audio/video call component (optional, required for audio/video calls)
|
|
103
|
+
include ':tuicallkit-kt'
|
|
104
|
+
project(':tuicallkit-kt').projectDir = new File(settingsDir, 'call/tuicallkit-kt')
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
3. Add dependencies to the app module's `build.gradle.kts`:
|
|
108
|
+
|
|
109
|
+
【Kotlin DSL】
|
|
110
|
+
``` kotlin
|
|
111
|
+
// app/build.gradle.kts
|
|
112
|
+
dependencies {
|
|
113
|
+
// TUIKit component library (required)
|
|
114
|
+
implementation(project(":uikit"))
|
|
115
|
+
implementation(project(":atomic_x"))
|
|
116
|
+
// Audio/video call (optional)
|
|
117
|
+
implementation(project(":tuicallkit-kt"))
|
|
118
|
+
}
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
【Groovy DSL】
|
|
122
|
+
``` groovy
|
|
123
|
+
// app/build.gradle
|
|
124
|
+
dependencies {
|
|
125
|
+
// TUIKit component library (required)
|
|
126
|
+
implementation project(':uikit')
|
|
127
|
+
implementation project(':atomic_x')
|
|
128
|
+
// Audio/video call (optional)
|
|
129
|
+
implementation project(':tuicallkit-kt')
|
|
130
|
+
}
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
### Implementation Steps
|
|
134
|
+
|
|
135
|
+
After completing the integration above, follow these steps to quickly build core UIs such as the conversation list, chat, and contacts with only a few lines of code.
|
|
136
|
+
|
|
137
|
+
#### Step 1. Configure User Authentication
|
|
138
|
+
|
|
139
|
+
In [Console > Development Tools > UserSig Tools](https://console.trtc.io/usersig), obtain a UserSig based on the UserID. The UserSig is used for user authentication during login.
|
|
140
|
+
|
|
141
|
+
> **Description:**
|
|
142
|
+
>
|
|
143
|
+
|
|
144
|
+
> For more UserSig operations, see UserSig Generation & Verification.
|
|
145
|
+
>
|
|
146
|
+
|
|
147
|
+
#### Step 2. User Login
|
|
148
|
+
|
|
149
|
+
You must log in before using component features. Call the `login` API of `LoginStore` and pass in the sdkAppID, userID, and userSig obtained above for login authentication:
|
|
150
|
+
``` java
|
|
151
|
+
import io.trtc.tuikit.atomicxcore.api.CompletionHandler
|
|
152
|
+
import io.trtc.tuikit.atomicxcore.api.login.LoginStore
|
|
153
|
+
|
|
154
|
+
LoginStore.shared.login(
|
|
155
|
+
context,
|
|
156
|
+
sdkAppID, // Int, obtained from the Console
|
|
157
|
+
userID, // String
|
|
158
|
+
userSig, // String, generated in the Console or on your server
|
|
159
|
+
object : CompletionHandler {
|
|
160
|
+
override fun onSuccess() {
|
|
161
|
+
// Login succeeded. You can navigate to the conversation list or chat page.
|
|
162
|
+
}
|
|
163
|
+
override fun onFailure(code: Int, desc: String) {
|
|
164
|
+
// Login failed. You can show an error dialog.
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
)
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
> **Note:**
|
|
171
|
+
>
|
|
172
|
+
|
|
173
|
+
> In a production environment, we recommend generating UserSig on your server. When needed, your app should request a dynamic UserSig from your business server for authentication. For details, see [Generating UserSig on the Server](https://intl.cloud.tencent.com/document/product/1047/34385).
|
|
174
|
+
>
|
|
175
|
+
|
|
176
|
+
#### Step 3. Build the Conversation List UI
|
|
177
|
+
|
|
178
|
+
To build a conversation list, create `ConversationsPageView` and add it to your layout. It automatically reads recent conversations from local storage. When a conversation is tapped, the `onConversationClick` callback returns the conversation's `conversationID`, which you can use to navigate to the chat UI.
|
|
179
|
+
``` kotlin
|
|
180
|
+
import android.os.Bundle
|
|
181
|
+
import androidx.appcompat.app.AppCompatActivity
|
|
182
|
+
import io.trtc.tuikit.chat.uikit.pages.ConversationsPageView
|
|
183
|
+
|
|
184
|
+
class ConversationActivity : AppCompatActivity() {
|
|
185
|
+
override fun onCreate(savedInstanceState: Bundle?) {
|
|
186
|
+
super.onCreate(savedInstanceState)
|
|
187
|
+
|
|
188
|
+
val conversationsPage = ConversationsPageView(this)
|
|
189
|
+
conversationsPage.setHeaderTitle("Messages")
|
|
190
|
+
|
|
191
|
+
// Conversation tap callback. conversationID already includes the c2c_ or group_ prefix.
|
|
192
|
+
conversationsPage.onConversationClick = { conversationID ->
|
|
193
|
+
// Navigate to your chat UI and pass in conversationID. See ChatActivity in Step 4.
|
|
194
|
+
}
|
|
195
|
+
// Optional callbacks for search, starting one-to-one chats, and creating groups.
|
|
196
|
+
conversationsPage.onSearchClick = { /* Navigate to the search page */ }
|
|
197
|
+
conversationsPage.onStartChatClick = { /* Start a one-to-one chat */ }
|
|
198
|
+
conversationsPage.onCreateGroupClick = { /* Create a group */ }
|
|
199
|
+
|
|
200
|
+
// Set the conversation list as the page content.
|
|
201
|
+
setContentView(conversationsPage)
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
#### Step 4. Build the Chat UI
|
|
207
|
+
|
|
208
|
+
Use `ChatPageView` to display and send or receive messages. Pass `conversationID` through `setup`. The `conversationID` format is `c2c_<peer UserID>` for one-to-one chats and `group_<GroupID>` for group chats.
|
|
209
|
+
``` kotlin
|
|
210
|
+
import android.content.Context
|
|
211
|
+
import android.content.Intent
|
|
212
|
+
import android.os.Bundle
|
|
213
|
+
import androidx.appcompat.app.AppCompatActivity
|
|
214
|
+
import io.trtc.tuikit.chat.uikit.pages.ChatPageView
|
|
215
|
+
|
|
216
|
+
class ChatActivity : AppCompatActivity() {
|
|
217
|
+
|
|
218
|
+
override fun onCreate(savedInstanceState: Bundle?) {
|
|
219
|
+
// Material Components theme is required, otherwise ChatPageView may crash at runtime.
|
|
220
|
+
setTheme(com.google.android.material.R.style.Theme_MaterialComponents_Light_NoActionBar)
|
|
221
|
+
super.onCreate(savedInstanceState)
|
|
222
|
+
|
|
223
|
+
// conversationID format: "c2c_<peer UserID>" for one-to-one chats, "group_<GroupID>" for group chats.
|
|
224
|
+
val conversationID = intent.getStringExtra("conversationID") ?: return
|
|
225
|
+
|
|
226
|
+
val chatPageView = ChatPageView(this)
|
|
227
|
+
chatPageView.setup(conversationID = conversationID)
|
|
228
|
+
setContentView(chatPageView)
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
companion object {
|
|
232
|
+
fun start(context: Context, conversationID: String) {
|
|
233
|
+
context.startActivity(Intent(context, ChatActivity::class.java).apply {
|
|
234
|
+
putExtra("conversationID", conversationID)
|
|
235
|
+
})
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
> **Note:**
|
|
242
|
+
>
|
|
243
|
+
|
|
244
|
+
> The Activity that hosts the chat page **must** use a Material Components theme, such as `setTheme(com.google.android.material.R.style.Theme_MaterialComponents_Light_NoActionBar)`. Otherwise, Material controls used inside `ChatPageView` may crash at runtime because required theme attributes are missing.
|
|
245
|
+
>
|
|
246
|
+
|
|
247
|
+
> **Description:**The Demo project provides `ChatActivity`, a chat page encapsulated based on `ChatPageView` with a title bar, unread badges, group event handling, and more. You can reuse it directly or refer to its implementation for customization: `ChatActivity.start(context, conversationID)`.
|
|
248
|
+
>
|
|
249
|
+
|
|
250
|
+
#### Step 5. Build the Contacts UI
|
|
251
|
+
|
|
252
|
+
Use `ContactsPageView` to display friend lists, group lists, and more. Set click callbacks through `setup`. When a contact or group is tapped, navigate to the corresponding chat UI.
|
|
253
|
+
``` kotlin
|
|
254
|
+
import android.os.Bundle
|
|
255
|
+
import androidx.appcompat.app.AppCompatActivity
|
|
256
|
+
import io.trtc.tuikit.chat.uikit.pages.ContactsPageView
|
|
257
|
+
|
|
258
|
+
class ContactActivity : AppCompatActivity() {
|
|
259
|
+
override fun onCreate(savedInstanceState: Bundle?) {
|
|
260
|
+
super.onCreate(savedInstanceState)
|
|
261
|
+
|
|
262
|
+
val contactsPage = ContactsPageView(this)
|
|
263
|
+
contactsPage.setHeaderTitle("Contacts")
|
|
264
|
+
contactsPage.setup(
|
|
265
|
+
onContactClick = { contactInfo ->
|
|
266
|
+
// Navigate to your chat UI. The one-to-one conversation ID is "c2c_" + contactInfo.userID.
|
|
267
|
+
},
|
|
268
|
+
onGroupClick = { contactInfo ->
|
|
269
|
+
// Navigate to your chat UI. The group conversation ID is "group_" + contactInfo.userID.
|
|
270
|
+
}
|
|
271
|
+
)
|
|
272
|
+
setContentView(contactsPage)
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
```
|
|
276
|
+
|
|
277
|
+
#### Step 6. Theme Settings (Optional)
|
|
278
|
+
|
|
279
|
+
TUIKit uses `ThemeStore` to support primary color settings and light/dark theme switching.
|
|
280
|
+
``` kotlin
|
|
281
|
+
import io.trtc.tuikit.atomicx.theme.Theme
|
|
282
|
+
import io.trtc.tuikit.atomicx.theme.ThemeStore
|
|
283
|
+
|
|
284
|
+
// Set primary color.
|
|
285
|
+
ThemeStore.shared(context).setPrimaryColor("#1C66E5")
|
|
286
|
+
|
|
287
|
+
// Switch between light and dark themes.
|
|
288
|
+
ThemeStore.shared(context).setTheme(Theme.lightTheme(context))
|
|
289
|
+
// ThemeStore.shared(context).setTheme(Theme.darkTheme(context))
|
|
290
|
+
```
|
|
291
|
+
|
|
292
|
+
## FAQs
|
|
293
|
+
|
|
294
|
+
##### Using Emoji Packs
|
|
295
|
+
|
|
296
|
+
To respect emoji design copyrights, the Chat Demo/TUIKit project does not include large emoji image assets. Before commercial release, replace them with emoji packs designed by you or otherwise licensed to you. The default **smiley emoji pack shown below is copyrighted by Tencent Cloud**, and you can use it for free by upgrading to [Chat Pro Plus or Enterprise Edition](https://console.trtc.io/subscription/buy/chat).
|
|
297
|
+
|
|
298
|
+
## Contact Us
|
|
299
|
+
|
|
300
|
+
If you have any questions or suggestions during integration or use, [contact us](https://trtc.io/contact) to submit feedback.
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
## Component Overview
|
|
2
|
+
|
|
3
|
+
ChatSetting is a suite of chat settings components, featuring two primary modules: C2CChatSetting for one-on-one chat settings and GroupChatSetting for group chat settings.
|
|
4
|
+
|
|
5
|
+
These components offer a complete set of tools for managing chat sessions, including user information management, permission controls, group management, and other essential features.
|
|
6
|
+
| C2C Chat Settings Interface | Group Chat Settings Interface |
|
|
7
|
+
| --- | --- |
|
|
8
|
+
| | |
|
|
9
|
+
|
|
10
|
+
## Component Integration
|
|
11
|
+
|
|
12
|
+
ChatSetting is included in TUIKit Flutter. To use ChatSetting, integrate TUIKit Flutter into your project. For detailed integration instructions, see the [TUIKit Flutter](https://www.tencentcloud.com/document/product/1047/77489) documentation.
|
|
13
|
+
|
|
14
|
+
## Component Structure
|
|
15
|
+
|
|
16
|
+
ChatSetting provides two main components: C2CChatSetting for one-on-one chat settings and GroupChatSetting for group chat settings. Each module supports extensive configuration options.
|
|
17
|
+
|
|
18
|
+
### C2C Chat Settings (C2CChatSetting)
|
|
19
|
+
|
|
20
|
+
#### Initialization Parameters
|
|
21
|
+
|
|
22
|
+
|Parameter Name|Type|Description|
|
|
23
|
+
|---------|---------|---------|
|
|
24
|
+
|`userID`|`String`|The user ID of the chat partner.|
|
|
25
|
+
|`onSendMessageClick`|`void Function({String? userID, String? groupID})`|Callback triggered when the Send Message button is clicked. Optional.|
|
|
26
|
+
|`onContactDelete`|`VoidCallback`|Callback triggered when the Delete Contact button is clicked. Optional.|
|
|
27
|
+
|
|
28
|
+
### Group Chat Settings (GroupChatSetting)
|
|
29
|
+
|
|
30
|
+
#### Initialization Parameters
|
|
31
|
+
|
|
32
|
+
|Parameter Name|Type|Description|
|
|
33
|
+
|---------|---------|---------|
|
|
34
|
+
|`groupID`|`String`|Group ID, used to identify the group chat.|
|
|
35
|
+
|`onSendMessageClick`|`void Function({String? userID, String? groupID})`|Callback triggered when the Send Message button is clicked. Optional.|
|
|
36
|
+
|`onGroupDelete`|`VoidCallback`|Callback triggered when the Dissolve/Leave Group button is clicked. Optional.|
|
|
37
|
+
|
|
38
|
+
## Basic Usage
|
|
39
|
+
|
|
40
|
+
To display the one-on-one chat settings page, initialize C2CChatSetting as shown below:
|
|
41
|
+
``` swift
|
|
42
|
+
C2CChatSetting(
|
|
43
|
+
userID: userID,
|
|
44
|
+
onSendMessageClick: ({String? userID, String? groupID}) {
|
|
45
|
+
// Handle send message button click event
|
|
46
|
+
},
|
|
47
|
+
onContactDelete: () {
|
|
48
|
+
// Handle delete contact button click event
|
|
49
|
+
},
|
|
50
|
+
);
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
To display the group chat settings page, initialize GroupChatSetting as follows:
|
|
54
|
+
``` swift
|
|
55
|
+
GroupChatSetting(
|
|
56
|
+
groupID: groupID,
|
|
57
|
+
onGroupDelete: () {
|
|
58
|
+
// Handle delete, dissolve, or leave group button click event
|
|
59
|
+
},
|
|
60
|
+
onSendMessageClick: ({String? userID, String? groupID}) {
|
|
61
|
+
// Handle send message button click event
|
|
62
|
+
},
|
|
63
|
+
);
|
|
64
|
+
```
|