override fun onAudioClientPrimaryMeetingEvent()

in amazon-chime-sdk/src/main/java/com/amazonaws/services/chime/sdk/meetings/internal/audio/DefaultAudioClientObserver.kt [471:497]


    override fun onAudioClientPrimaryMeetingEvent(type: Int, status: Int) {
        logger.info(TAG, "Primary meeting event for notified with type $type and status $status")
        val sdkStatus = when (status) {
            AudioClient.AUDIO_CLIENT_PRIMARY_MEETING_OK -> MeetingSessionStatusCode.OK
            AudioClient.AUDIO_SERVER_PRIMARY_MEETING_DISCONNECTED -> MeetingSessionStatusCode.AudioDisconnected
            AudioClient.AUDIO_SERVER_PRIMARY_MEETING_INTERNAL_ERROR -> MeetingSessionStatusCode.AudioInternalServerError
            AudioClient.AUDIO_SERVER_PRIMARY_MEETING_AUTHENTICATION_FAILED -> MeetingSessionStatusCode.AudioAuthenticationRejected
            AudioClient.AUDIO_SERVER_PRIMARY_MEETING_REMOVED_FROM_MEETING -> MeetingSessionStatusCode.AudioDisconnectAudio
            else -> MeetingSessionStatusCode.AudioInternalServerError
        }

        when (type) {
            AudioClient.AUDIO_SERVER_PRIMARY_MEETING_JOIN_ACK -> {
                primaryMeetingPromotionObserver?.onPrimaryMeetingPromotion(MeetingSessionStatus(sdkStatus))
                    ?: run {
                    logger.info(TAG, "Primary meeting promotion completed from audio but no primary meeting promotion callback is set")
                }
            }
            AudioClient.AUDIO_SERVER_PRIMARY_MEETING_LEAVE -> {
                primaryMeetingPromotionObserver?.onPrimaryMeetingDemotion(MeetingSessionStatus(sdkStatus))
                    ?: run {
                        logger.info(TAG, "Primary meeting demotion occurred from audio but no primary meeting demotion callback is set")
                }
                primaryMeetingPromotionObserver = null
            }
        }
    }