Capturing user "leave meeting" events

Description
We’d like to determine when and how a user leaves a meeting by either

  1. The user clicking the red “Leave” button in the meeting
  2. The host ending the meeting
  3. Programmatically leaving the meeting via meetingService.leaveCurrentMeeting()

We’ve implemented two different listeners in an attempt to capture these three events, namely the MeetingServiceListener and the InMeetingServiceListener, however these callbacks have produced much confusion.

Questions:

  1. Is there a listener to listen for click events on the red, in meeting “Leave” button?

  2. Consider the following log output:

    Meeting status: MEETING_STATUS_CONNECTING, error: 0
    Meeting status: MEETING_STATUS_IN_WAITING_ROOM, error: 0
    Meeting status: MEETING_STATUS_RECONNECTING, error: 0
    onMeetingLeaveComplete 0
    Meeting status: MEETING_STATUS_IDLE, error: 0
    Meeting status: MEETING_STATUS_CONNECTING, error: 0
    onMeetingUserJoin [12345678, 12345679]
    onUserVideoStatusChanged 12345678
    onUserVideoStatusChanged 12345678
    onUserVideoStatusChanged 12345679
    onUserVideoStatusChanged 12345679
    Meeting status: MEETING_STATUS_INMEETING, error: 0
    Meeting status: MEETING_STATUS_DISCONNECTING, error: 0
    onMeetingLeaveComplete 0
    Meeting status: MEETING_STATUS_IDLE

    In this scenario, a user was in a waiting room, waiting to be admitted. Once the host admitted the user, the first onMeetingLeaveComplete callback was called. Why does it appear that the user leaves the meeting whenever the host admits a user? Is this a bug, or is this intentional?

  3. Finally, exiting the meeting via the back button (after overriding the default behavior, see back-button-behavior-when-in-a-meeting) seems to require that a leaveCurrentMeeting() function be invoked. How can we differentiate between leaving a meeting via that function and the other ways described above?

Which version?
SDK version v5.0.24433.0616

Smartphone (please complete the following information):

  • Device: Pixel Emulator
  • OS: Android
  • Version: API 29

Hi @caleb.c,

Thanks for the post. Regarding your questions:

1). You could override the listener onClickEndButton for this purpose.
2). When a user has been admitted from the waiting room, the user will leave the meeting and then rejoin the main section. This is by design and inherits from the Zoom client.
3). You could differentiate the cases by overriding the onClickEndButton and onBackPressed

Hope this helps. Thanks!

@Carson_Chen

I apologize, I should have been more clear. I found the onClickEndButton callback, but that is invoked when the user clicks the “Leave” button:

Clicking this button doesn’t leave the meeting, it simply shows the secondary “Leave Meeting” button:

This secondary button is the one I wish to listen to, as clicking this button causes the user to leave the meeting. There exists another callback, onClickLeave, however this appears to duplicate the functionality of the onClickEndButton callback and is not invoked when this secondary button is clicked. How can I listen for clicks of this button?