Callback are not triggering

we tried to implement the appropriate callback, as a starting point we took up the implementation in Android first. **We have implemented the ‘InMeetingServiceListener’ interface and overridden the method “onJoinWebinarNeedUserNameAndEmail” , but somehow the callback is not getting invoked
Please guide.

Hi @cindy, thanks for using our SDK.

Can you please provide a code snippet showing how you are setting up your InMeetingServiceListener implementation and passing into the SDK?

Thanks!

package com.justwinked;
​
import android.annotation.SuppressLint;
import android.util.Log;
​
import androidx.annotation.NonNull;
​
import com.facebook.react.bridge.Promise;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.bridge.ReactContextBaseJavaModule;
import com.facebook.react.bridge.ReactMethod;
​
import java.util.List;
​
import us.zoom.sdk.FreeMeetingNeedUpgradeType;
import us.zoom.sdk.InMeetingAudioController;
import us.zoom.sdk.InMeetingChatMessage;
import us.zoom.sdk.InMeetingEventHandler;
import us.zoom.sdk.InMeetingServiceListener;
import us.zoom.sdk.JoinMeetingOptions;
import us.zoom.sdk.JoinMeetingParams;
import us.zoom.sdk.MeetingError;
import us.zoom.sdk.MeetingService;
import us.zoom.sdk.MeetingServiceListener;
import us.zoom.sdk.MeetingStatus;
import us.zoom.sdk.MeetingViewsOptions;
import us.zoom.sdk.ZoomError;
import us.zoom.sdk.ZoomSDK;
import us.zoom.sdk.ZoomSDKInitParams;
import us.zoom.sdk.ZoomSDKInitializeListener;
import us.zoom.sdk.MeetingOptions;
​
​
public  class ZoomManager extends ReactContextBaseJavaModule implements ZoomSDKInitializeListener, MeetingServiceListener, InMeetingServiceListener {
    private final ReactApplicationContext reactContext;
​
    public ZoomManager(ReactApplicationContext context) {
        super(context);
        this.reactContext = context;
    }
    @NonNull
​
    @Override
    public String getName() {
        return "AwesomeZoomSDK";
    }
    @SuppressLint("LongLogTag")
    @ReactMethod
    public void initZoom(String publickey, String privatekey, String domain, Promise promise){
        Log.d(this.getName(),"Init zoom:"+publickey+"and privatekey: " +privatekey+"domain: "+domain);
        try{
            this.getReactApplicationContext().getCurrentActivity().runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    ZoomSDK zoomSDK= ZoomSDK.getInstance();
                    ZoomSDKInitParams initParams= new ZoomSDKInitParams();
                    initParams.appKey=publickey;
                    initParams.appSecret=privatekey;
                    initParams.enableGenerateDump=true;
                    initParams.enableLog=true;
                    initParams.domain=domain;
                    zoomSDK.initialize(reactContext.getCurrentActivity(), (ZoomSDKInitializeListener) ZoomManager.this,initParams);
​
                }
            });
        }catch(Exception e){
            Log.e("ERR_UNEXPECTED_EXCEPTION",e.getMessage());
            promise.reject("ERR_UNEXPECTED_EXCEPTION",e);
        }
    }
​
    @ReactMethod
    public Promise joinMeeting(String displayName, String meetingNumber, String password,String email, Promise promise){
        Log.d("ou shit","Join meeing called:displayName : "+displayName+"and MeetingNumber: " +meetingNumber+"password: "+password+"Promise: "+promise);
​
        ZoomSDK zoomSDK=ZoomSDK.getInstance();
        Log.d("ou shit","Zoom SDK Value==="+zoomSDK);
        if(!zoomSDK.isInitialized()){
            promise.reject("Error Zoom start","Zoom has not been initialize successfully");
            return promise;
        }
        MeetingService meetingService=zoomSDK.getMeetingService();
        zoomSDK.getZoomUIService().prePopulateWebinarRegistrationInfo(email,"");
//        zoomSDK.getMeetingSettingsHelper().get
        Log.d("ou shit","meetingService==="+meetingService);
        if(meetingService==null){
            promise.reject("Error Zoom start","Zoom meeting service has not been initialize successfully");
            return promise;
        }
    
        JoinMeetingOptions opts =new JoinMeetingOptions();
        MeetingOptions meet =new MeetingOptions();
        opts.no_invite=true;
        opts.custom_meeting_id="Winked!";
//        opts.no_webinar_register_dialog=true;
        //opts.meeting_views_options= MeetingViewsOptions.NO_TEXT_MEETING_ID;
        JoinMeetingParams params=new JoinMeetingParams();
        params.displayName=displayName;
        params.meetingNo=meetingNumber;
        params.password=password;
        try{
            int joinMeetingResult=meetingService.joinMeetingWithParams(this.reactContext,params,opts);
            Log.i(this.getName(),"joinMeeting,joinMeetingResult= "+joinMeetingResult);
            if(joinMeetingResult!= MeetingError.MEETING_ERROR_SUCCESS){
                promise.reject("ERR_ZOOM_JOIN","joinMeeting , ErrorCode: "+joinMeetingResult);
            }
            Promise meetingPromise = promise;
            return meetingPromise;
        }catch(Exception e){
​
            promise.reject("JoinMeetingException:",e);
        }
        return promise;
    }
​
    @Override
    public void onZoomSDKInitializeResult(int errorCode, int internalErrorCode) {
    Log.d(this.getName(),"Initializing meeting server successful"+errorCode+"and internalErrorCode"+internalErrorCode);
​
    if(errorCode== ZoomError.ZOOM_ERROR_SUCCESS){
        Log.d(this.getName(),"Initializing meeting service successful");
        ZoomSDK zoomSDK=ZoomSDK.getInstance();
        MeetingService meetingService= zoomSDK.getMeetingService();
        if(meetingService!=null){
            Log.d(this.getName(),"Adding listener for meeting service");
            meetingService.addListener(this);
        }
    }
    }
​
    @Override
    public void onZoomAuthIdentityExpired() {
​
    }
​
    @Override
    public void onMeetingStatusChanged(MeetingStatus meetingStatus, int errorCode, int internalErrorCode) {
        Log.d(this.getName(),"MeetingStatus changed meetingStatus: "+meetingStatus+"errorCode: "+errorCode+"and internalErrorCode"+internalErrorCode);
        switch(meetingStatus){
            case MEETING_STATUS_FAILED:{
                break;
            }
            case MEETING_STATUS_DISCONNECTING:{
                break;
            }
            case MEETING_STATUS_INMEETING:{
                break;
            }
            case MEETING_STATUS_IN_WAITING_ROOM:{
                break;
            }
        }
    }
​
    @Override
    public void onMeetingNeedPasswordOrDisplayName(boolean b, boolean b1, InMeetingEventHandler inMeetingEventHandler) {
​
    }
​
    @Override
    public void onWebinarNeedRegister() {
​
    }
​
    @Override
    public void onJoinWebinarNeedUserNameAndEmail(InMeetingEventHandler inMeetingEventHandler) {
        Log.d("callback","setRegistration called");
        inMeetingEventHandler.setRegisterWebinarInfo("ABC","ABC@gmail.com",false);
​
    }
​
    @Override
    public void onMeetingNeedColseOtherMeeting(InMeetingEventHandler inMeetingEventHandler) {
​
    }
​
    @Override
    public void onMeetingFail(int i, int i1) {
​
    }
​
    @Override
    public void onMeetingLeaveComplete(long l) {
        Log.d("onMeetingLeaveComplete","s999999999999999999999999999999999");
    }
​
    @Override
    public void onMeetingUserJoin(List<Long> list) {
        Log.d("onMeetingUserJoin","-------------------------------");
    }
​
    @Override
    public void onMeetingUserLeave(List<Long> list) {
        Log.d("onMeetingUserLeave","------------------------------------");
​
    }
​
    @Override
    public void onMeetingUserUpdated(long l) {
​
    }
​
    @Override
    public void onMeetingHostChanged(long l) {
​
    }
​
    @Override
    public void onMeetingCoHostChanged(long l) {
​
    }
​
    @Override
    public void onActiveVideoUserChanged(long l) {
​
    }
​
    @Override
    public void onActiveSpeakerVideoUserChanged(long l) {
​
    }
​
    @Override
    public void onSpotlightVideoChanged(boolean b) {
​
    }
​
    @Override
    public void onUserVideoStatusChanged(long l) {
​
    }
​
    @Override
    public void onUserVideoStatusChanged(long l, VideoStatus videoStatus) {
​
    }
​
    @Override
    public void onUserNetworkQualityChanged(long l) {
​
    }
​
    @Override
    public void onMicrophoneStatusError(InMeetingAudioController.MobileRTCMicrophoneError mobileRTCMicrophoneError) {
​
    }
​
    @Override
    public void onUserAudioStatusChanged(long l) {
​
    }
​
    @Override
    public void onUserAudioStatusChanged(long l, AudioStatus audioStatus) {
​
    }
​
    @Override
    public void onHostAskUnMute(long l) {
​
    }
​
    @Override
    public void onHostAskStartVideo(long l) {
​
    }
​
    @Override
    public void onUserAudioTypeChanged(long l) {
​
    }
​
    @Override
    public void onMyAudioSourceTypeChanged(int i) {
​
    }
​
    @Override
    public void onLowOrRaiseHandStatusChanged(long l, boolean b) {
​
    }
​
    @Override
    public void onMeetingSecureKeyNotification(byte[] bytes) {
​
    }
​
    @Override
    public void onChatMessageReceived(InMeetingChatMessage inMeetingChatMessage) {
​
    }
​
    @Override
    public void onSilentModeChanged(boolean b) {
​
    }
​
    @Override
    public void onFreeMeetingReminder(boolean b, boolean b1, boolean b2) {
​
    }
​
    @Override
    public void onMeetingActiveVideo(long l) {
​
    }
​
    @Override
    public void onSinkAttendeeChatPriviledgeChanged(int i) {
​
    }
​
    @Override
    public void onSinkAllowAttendeeChatNotification(int i) {
​
    }
​
    @Override
    public void onUserNameChanged(long l, String s) {
​
    }
​
    @Override
    public void onFreeMeetingNeedToUpgrade(FreeMeetingNeedUpgradeType freeMeetingNeedUpgradeType, String s) {
​
    }
​
    @Override
    public void onFreeMeetingUpgradeToGiftFreeTrialStart() {
​
    }
​
    @Override
    public void onFreeMeetingUpgradeToGiftFreeTrialStop() {
​
    }
​
    @Override
    public void onFreeMeetingUpgradeToProMeeting() {
​
    }
​
    @Override
    public void onClosedCaptionReceived(String s) {
​
    }
​
    @Override
    public void onRecordingStatus(RecordingStatus recordingStatus) {
​
    }
}

Hi @cindy,

Thanks for providing that. I’m not seeing anything there which indicates that you are passing an instance of your implementation into the addListener method. Can you confirm whether or not this is being done?

Thanks!

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.