jitsi-meet-flutter-sdk icon indicating copy to clipboard operation
jitsi-meet-flutter-sdk copied to clipboard

Some configOverrides-entries have no effect

Open philitell opened this issue 9 months ago • 4 comments

I noticed some options that are usable in JistsiMeetConferenceOptions.configOverrides have not effect at all. For example:

  • "participantsPane"
  • "breakoutRooms" (also pointed out here #130 )

The mentioned elements are always visible (testen on Android) with this settings:

final JitsiMeetConferenceOptions options = JitsiMeetConferenceOptions(
          serverURL: Constants.jitsiMeetServerUrl,
          room: videoConference.roomName,
          token: token,
          configOverrides: {
            "subject": S.current.televisite,
            "defaultLanguage": "de",
            "disableModeratorIndicator": true,
             // NOTE: this config does not work at the moment 
            "participantsPane": {
              // Enables feature
              "enabled": false,
              // Hides the moderator settings tab.
              "hideModeratorSettingsTab": true,
              // Hides the more actions button.
              "hideMoreActionsButton": true,
              // Hides the mute all button.
              "hideMuteAllButton": true,
            },
            // NOTE: this config does not work at the moment 
            "breakoutRooms": {
              // Hides the add breakout room button. This replaces `hideAddRoomButton`.
              "hideAddRoomButton": true,
              // Hides the auto assign participants button.
              "hideAutoAssignButton": true,
              // Hides the join breakout room button.
              "hideJoinRoomButton": true,
            },
          },


philitell avatar Jul 10 '25 02:07 philitell

Same issue here only happen on Android, I have a "theme" requirement which forces me to use a custom button for the hang-up button, I only need the mic, the camera and the custom hang-up, so I managed to do it like this:

void join() {
  options = JitsiMeetConferenceOptions(
      serverURL: serverUrl,
      room: room,
      token: token,
      // featureFlags: _featureFlags,
      configOverrides: {
        'inviteAppName': App.buildConfig.appName,
        'participantsPane.enabled': false,
        'customToolbarButtons': [
          {
            'id': ids.btnJitsiHangUp,
            'text': 'Hang Up',
            'backgroundColor': 'orange',
            'icon':
            'https://raw.githubusercontent.com/jitsi/jitsi-meet/refs/heads/master/react/features/base/icons/svg/hangup.svg',
          },
        ],
        'toolbarButtons': [
          ids.btnJitsiHangUp,
          'microphone',
          'camera',
        ],
      },
    );

jitsiMeet.join(
      options,
      JitsiMeetEventListener(
        customButtonPressed: _customButtonPressed,        
      ),
    );
}

This is how it looks on iOS: Image

And this is how it looks on Android: Image Image

Basically the toolbarButtons override is ignored on Android.

luis901101 avatar Jul 11 '25 18:07 luis901101

I finally get it done on Android with the following override:

void join() {
  options = JitsiMeetConferenceOptions(
      serverURL: serverUrl,
      room: room,
      token: token,
      // featureFlags: _featureFlags,
      configOverrides: {
        'inviteAppName': App.buildConfig.appName,
        'participantsPane.enabled': false,
        'customToolbarButtons': [
          {
            'id': 'hangup',
            'text': 'Hang Up',
            'backgroundColor': 'orange',
            'icon':
            'https://raw.githubusercontent.com/jitsi/jitsi-meet/refs/heads/master/react/features/base/icons/svg/hangup.svg',
          },
        ],
        'mainToolbarButtons': [
          ['microphone', 'camera', 'overflowmenu', 'hangup'],
        ],
      },
    );

jitsiMeet.join(
      options,
      JitsiMeetEventListener(
        customButtonPressed: _customButtonPressed,        
      ),
    );
}

The fix consist in override the existing key 'hangup' instead of using a custom-key, this works for my specific use case which is to change theme of Hang Up button and control behavior, but still other overrides are not working on Android.

luis901101 avatar Jul 14 '25 12:07 luis901101

I noticed some options that are usable in JistsiMeetConferenceOptions.configOverrides have not effect at all. For example:

The mentioned elements are always visible (testen on Android) with this settings:

final JitsiMeetConferenceOptions options = JitsiMeetConferenceOptions(
          serverURL: Constants.jitsiMeetServerUrl,
          room: videoConference.roomName,
          token: token,
          configOverrides: {
            "subject": S.current.televisite,
            "defaultLanguage": "de",
            "disableModeratorIndicator": true,
             // NOTE: this config does not work at the moment 
            "participantsPane": {
              // Enables feature
              "enabled": false,
              // Hides the moderator settings tab.
              "hideModeratorSettingsTab": true,
              // Hides the more actions button.
              "hideMoreActionsButton": true,
              // Hides the mute all button.
              "hideMuteAllButton": true,
            },
            // NOTE: this config does not work at the moment 
            "breakoutRooms": {
              // Hides the add breakout room button. This replaces `hideAddRoomButton`.
              "hideAddRoomButton": true,
              // Hides the auto assign participants button.
              "hideAutoAssignButton": true,
              // Hides the join breakout room button.
              "hideJoinRoomButton": true,
            },
          },

You also have available the following flags that enable disable the breakout rooms and participants features.

"breakout-rooms.enabled": false, "participants.enabled": false

Calinteodor avatar Jul 23 '25 09:07 Calinteodor

We did a new release. Please check again and let us know.

Calinteodor avatar Jul 23 '25 11:07 Calinteodor

@Calinteodor Yes this works but the flags are not included in the FeatureFlags class/enum. But you can use them manually:

 featureFlags: {
            FeatureFlags.addPeopleEnabled: false,
            FeatureFlags.androidScreenSharingEnabled: false,
            ....
            "breakout-rooms.enabled": false,
            "participants.enabled": false
          },

Would be great if does Flags are included in FeatureFlags

philitell avatar Dec 11 '25 10:12 philitell

Would you mind sending a PR?

saghul avatar Dec 11 '25 13:12 saghul