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
Report incorrect code
Copy
Ask AI
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") }})
Report incorrect code
Copy
Ask AI
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()
Report incorrect code
Copy
Ask AI
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
Report incorrect code
Copy
Ask AI
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() {}})
Report incorrect code
Copy
Ask AI
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() {}});