Use this file to discover all available pages before exploring further.
Control the call layout and UI elements during an active session. These methods allow you to change the call layout, enable Picture-in-Picture mode, and update UI badges.
Register a LayoutListener to receive callbacks when layout changes occur:
Kotlin
Java
callSession.addLayoutListener(this, object : LayoutListener { override fun onCallLayoutChanged(layoutType: LayoutType) { Log.d(TAG, "Layout changed to: ${layoutType.value}") } override fun onParticipantListVisible() { Log.d(TAG, "Participant list is now visible") } override fun onParticipantListHidden() { Log.d(TAG, "Participant list is now hidden") } override fun onPictureInPictureLayoutEnabled() { Log.d(TAG, "PiP mode enabled") } override fun onPictureInPictureLayoutDisabled() { Log.d(TAG, "PiP mode disabled") }})
callSession.addLayoutListener(this, new LayoutListener() { @Override public void onCallLayoutChanged(LayoutType layoutType) { Log.d(TAG, "Layout changed to: " + layoutType.getValue()); } @Override public void onParticipantListVisible() { Log.d(TAG, "Participant list is now visible"); } @Override public void onParticipantListHidden() { Log.d(TAG, "Participant list is now hidden"); } @Override public void onPictureInPictureLayoutEnabled() { Log.d(TAG, "PiP mode enabled"); } @Override public void onPictureInPictureLayoutDisabled() { Log.d(TAG, "PiP mode disabled"); }});
val sessionSettings = CometChatCalls.SessionSettingsBuilder() // Panels .hideControlPanel(false) // Show bottom control bar .hideHeaderPanel(false) // Show top header bar .hideSessionTimer(false) // Show session duration timer // Buttons .hideChangeLayoutButton(false) // Show layout toggle button .hideChatButton(false) // Show chat button .hideParticipantListButton(false) // Show participant list button .build()
SessionSettings sessionSettings = new CometChatCalls.SessionSettingsBuilder() // Panels .hideControlPanel(false) // Show bottom control bar .hideHeaderPanel(false) // Show top header bar .hideSessionTimer(false) // Show session duration timer // Buttons .hideChangeLayoutButton(false) // Show layout toggle button .hideChatButton(false) // Show chat button .hideParticipantListButton(false) // Show participant list button .build();
Listen for UI button clicks to implement custom behavior:
Kotlin
Java
callSession.addButtonClickListener(this, object : ButtonClickListener { override fun onChangeLayoutButtonClicked() { Log.d(TAG, "Layout button clicked") } override fun onChatButtonClicked() { Log.d(TAG, "Chat button clicked") // Open your chat UI } override fun onParticipantListButtonClicked() { Log.d(TAG, "Participant list button clicked") } // Other callbacks... override fun onLeaveSessionButtonClicked() {} override fun onRaiseHandButtonClicked() {} override fun onShareInviteButtonClicked() {} override fun onToggleAudioButtonClicked() {} override fun onToggleVideoButtonClicked() {} override fun onSwitchCameraButtonClicked() {} override fun onRecordingToggleButtonClicked() {}})
callSession.addButtonClickListener(this, new ButtonClickListener() { @Override public void onChangeLayoutButtonClicked() { Log.d(TAG, "Layout button clicked"); } @Override public void onChatButtonClicked() { Log.d(TAG, "Chat button clicked"); // Open your chat UI } @Override public void onParticipantListButtonClicked() { Log.d(TAG, "Participant list button clicked"); } // Other callbacks... @Override public void onLeaveSessionButtonClicked() {} @Override public void onRaiseHandButtonClicked() {} @Override public void onShareInviteButtonClicked() {} @Override public void onToggleAudioButtonClicked() {} @Override public void onToggleVideoButtonClicked() {} @Override public void onSwitchCameraButtonClicked() {} @Override public void onRecordingToggleButtonClicked() {}});