Help Center> Meeting> Client SDK Reference> Android SDK> API Reference> UI Customization> Customizing a Menu on the Participants Screen
Updated on 2023-03-23 GMT+08:00

Customizing a Menu on the Participants Screen

This API is used to customize the following menus on the Participants screen:

1. buildParticipantMoreMenuItems: customizes the menu items (area 1 in Figure 1) on the right of the title bar.

2. buildParticipantItemMenuItems: customizes the menu (Figure 2) displayed when a user touches a participant (area 2 in Figure 1) in the participant list.

3. buildParticipantToolbarMenuItems: customizes the bottom menu bar (area 3 in Figure 1) of the Participants screen.

4. buildParticipantToolbarMoreMenuItems: customizes the menu (Figure 3) displayed when a user touches the More button (area 4 in Figure 1) at the bottom.

Application Scenarios

Menu items in the four areas on the Participants screen need to be customized.

Precautions

1. sdkConfig takes effect only when this configuration is passed during SDK initialization.

Customizing the Menu Items on the Participants Screen

Sample Code

1
sdkConfig.setParticipantMenuStrategy(new CustomParticipantMenuHandle());

Figure 1 Menu areas in the Participants screen

Customizing a More Menu in the Participants List

Figure 2 Customizing a More menu in the Participants list
Figure 3 Sample of a custom More menu in the participants list

Sample Code

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
public class CustomParticipantMenuHandle implements IParticipentMenuStrategy {
    @Override
    public List<IConfMenu> buildParticipantMoreMenuItems() {
        List<IConfMenu> confMenus = new ArrayList<>();
        confMenus.add(new ParticipantShareMenu());
        confMenus.add(new ContantMenu());
        // [Demo] Add a custom menu.
        confMenus.add(new CustomMoreMenu());
        return confMenus;
    }
    @Override
    public List<IConfMenu> buildParticipantItemMenuItems() {
        List<IConfMenu> confMenus = new ArrayList<>();
        confMenus.add(new ReleaseOrRequestChairManMenu());// Apply to be the host or relinquish the host role.
        confMenus.add(new MuteOrUnmuteMenu());// Mute a participant.
        confMenus.add(new BroastAndCacelMenu());// Broadcast a participant.
        confMenus.add(new SetChairmanMenu());// Set a participant as the host.
        confMenus.add(new RecallMenu());// Re-call a participant.
        if (LoginConstant.AppEdition.China.getEdition().equals(PreferenceUtils.read(PreferenceUtils.PREFERENCES_NAME, APP_EDITION, LoginConstant.AppEdition.China.getEdition(), Utils.getApp()))) {
            confMenus.add(new CallOtherNumberMenu());// Call another number of a participant.
        }
        confMenus.add(new SelectWatchOrCacnelMenu());// Focus a participant.
        confMenus.add(new RenameMenu());// Rename in the meeting.
        confMenus.add(new HandsUpOrDownMenu());// Raise your hand.
        confMenus.add(new AttendeeProfileMenu());// View participant details.
        confMenus.add(new HangupMenu());// End the call to a participant.
        confMenus.add(new RemoveMenu());// Remove a participant.
        // [Demo] Add a custom menu.
        confMenus.add(new CustomMoreMenu());
        return confMenus;
    }
    @Override
    public List<IConfMenu> buildParticipantToolbarMenuItems() {
        return null;
    }
    @Override
    public List<IConfMenu> buildParticipantToolbarMoreMenuItems() {
        List<IConfMenu> confMenus = new ArrayList<>();
        confMenus.add(new AllowUnmuteOrNotMenu());
        confMenus.add(new ReleaseOrRequestChairManMenu());
        confMenus.add(new LockOrUnlockConfMenu());
        // [Demo] Add a custom menu.
        confMenus.add(new CustomMoreMenu());
        return confMenus;
    }
}