Session Callbacks

Use the following SDK callbacks methods from the ISessionCallbacks interface to override these methods to suit your app.
 

Copiedfun sessionConnectionState(state: LensType, error: ErrorType? = null, message: String)
Called when session connection state changes.

The possible values of LensType are,

  • VALID
  • ERROR
  •  
  • CLIENT_IS_NOT_COMPATIBLE
  • BELOW_MIN_API_LEVEL
  • CONTEXT_NOT_AVAILABLE
  • INVALID_SDK_TOKEN
  • INVALID_SESSION_KEY
  •  
  • SESSION_CONNECTED
  • SESSION_INVALID
  • CLIENT_INVALID
  • SESSION_EXPIRED
  • DUPLICATE_CLIENT
  • CLOSED_SESSION
  • TECHNICIAN_CLOSED_SESSION
  • CUSTOMER_CLOSED_SESSION
  •  
  • INVITE_PARTICIPANT
  • CONNECTION_INITIATED
  • COMPLETED_PARTICIPANT_JOIN
  • CUSTOMER_LEFT_SESSION
  • TECHNICIAN_LEFT_SESSION
  • SECONDARY_TECHNICIAN_LEFT_SESSION
  • SERVER_ISSUE_LEFT_SESSION
  •  
  • NETWORK_CONNECTED
  • NETWORK_DISCONNECTED
  •  
  • SOCKET_CONNECTING
  • SOCKET_CONNECTED
  • SOCKET_DISCONNECTED
  • SOCKET_FAILED
  • SOCKET_CLOSED
  • SOCKET_ERROR
  •  
  • PEER_CONNECTED
  • PEER_DISCONNECTED
  •  
  • ICE_STATE_CONNECTED
  • ICE_STATE_DISCONNECTED
  • ICE_STATE_FAILED
  • ICE_STATE_RECONNECTED
  • ICE_STATE_CLOSED
  • ICE_STATE_NEW
  •  
  • ICE_CANDIDATES_LOCAL_CONNECTION_FAILURE
  • ICE_CANDIDATES_REMOTE_CONNECTION_FAILURE

Copiedfun chatMessage(message: ChatModel)

Called when participant receives chat messages.

Copiedfun onLensScreenShotTaken()

Called when screenshot has been taken by technician.

Copiedfun handleAudioMute(isMute: Boolean)

Called when audio mute status is changed.

Copiedfun audioDeviceChange(selectedAudioDevice: AudioDevice, availableAudioDevices: MutableSet<AudioDevice>)
Called when the currently used audio device is changed.

The possible values for `AudioDevice` are,

  • AudioDevice.SPEAKER_PHONE
  • AudioDevice.EARPIECE
  • AudioDevice.BLUETOOTH
  • AudioDevice.WIRED_HEADSET
  • AudioDevice.NONE

Copiedfun openedInDifferentLocation()

Called when the session has already been opened & is being run in a different location (device).

Copiedfun updateTechnicianList(technicians: ArrayList<ParticipantStatus>)

Called when there are changes in the list of technicians who are currently participating in the session.

Copiedfun log(tag: String, message: String)

Called for log statements in the SDK.

Copiedfun showToast(type: LensToast,displayName:String?)
Called when toast needs to be shown for a `LensToast` case.

The possible values of `LensToast` are,

  • SECONDARY_TECH_FROZEN_VIDEO
  • TECHNICIAN_FROZEN_VIDEO
  • CUSTOMER_FROZEN_VIDEO
  • CUSTOMER_UNFROZEN_VIDEO
  • SECONDARY_TECH_UNFROZEN_VIDEO
  • TECHNICIAN_UNFROZEN_VIDEO
  • SECONDARY_TECH_CANNOT_FREEZE_UNFREEZE_VIDEO
  •  
  • JOINED_PARTICIPANT
  • LEFT_PARTICIPANT
  • ANCHOR_PLACED
  • ANCHOR_PLACE_FAILED
  • ANCHOR_SELECTED
  • ANCHOR_DESELECTED
  •  
  • CAMERA_STREAM_CHANGED
  • CAMERA_STREAM_REMOVED
  •  
  • CAMERA_STREAM_REQUEST_RECEIVED
  • CAMERA_STREAM_REQUEST_APPROVED
  • CAMERA_STREAM_REQUEST_DENIED
  • CAMERA_STREAM_REQUEST_SOMEONE_WAITING_ALREADY
  •  
  • TECHNICIAN_FROZEN_SNAPSHOT
  • TECHNICIAN_UN_FROZEN_SNAPSHOT
  • SECONDARY_TECHNICIAN_FROZEN_SNAPSHOT
  • SECONDARY_TECHNICIAN_UN_FROZEN_SNAPSHOT
  •  
  • ZFS_SNAPSHOT_DOWNLOADED
  • ZFS_SNAPSHOT_DOWNLOAD_FAILED
Copiedfun showArTrackingListenerToast(trackingState: TrackingState, trackingFailureReason: TrackingFailureReason)
Called when toast message needs to be shown to user, since AR tracking has failed due to a `TrackingFailureReason`.

The possible values of `TrackingState` are,

  • TRACKING
  • PAUSED
  • STOPPED

The possible values of `TrackingFailureReason` are,

  • NONE
  • EXCESSIVE_MOTION
  • INSUFFICIENT_FEATURES
  • INSUFFICIENT_LIGHT
  • BAD_STATE

Copiedfun getActivity(): Activity?

Used by the SDK to get the activity in which the session is being conducted.

Copiedfun annotationsUpdated(annotationCount: Int?)

Called when annotations are added/removed, resulting in a change in the annotation count.

Copiedfun annotationSelection(isSelected:Boolean, id: String?)

Called when annotation has been selected.

Copiedfun showStreamingType(type: StreamingType, displayName:String?)
Called when the `StreamingType` for the user changes, which can be used by the application to update UI to show buttons/warning/etc that is appropriate for the `StreamingType`.

The possible values of `StreamingType` are,

  • VIDEO_UPSTREAM
  • VIDEO_DOWNSTREAM
  • NO_ONE_IS_STREAMING

Copiedfun onFPSUpdate(averageFPS: Int, fifteenthSecondFPS: Int)

Called every 15 with the average FPS of the session, and the FPS at the last second before callback is called. Only available for AR sessions.

Copiedfun onCameraSwapDone(isFrontCamera: Boolean)

Called when camera has been swapped from front to rear camera or vice versa. `isFrontCamera` will be true if the currently streaming camera is the front camera, it will be false if it is the rear camera.

Copiedfun onOCRStateChanged(ocrStateModel: OCRStateModel)

Called when OCR state has been changed. The `OCRStateModel` will be called with three possible values for `OCRState`,  

  • STARTED - OCR request has been raised and is being processed by LensSDK.
  • COMPLETED - OCR scan has been completed successfully. The result text & associated confidence score will be available in the `ocrStateModel`.
  • ERROR- Error has occurred whilst trying to take/scan OCR, the `ocrStateModel` will contain the error message for the error.

Copiedfun onQRSuccess(qrText: String)

Called when QR scan has been completed successfully.

Copiedfun onQRFailure(errorMessage: String, willRetry: Boolean)

Called when QR scan has failed. If the value of `willRetry` is true, then the QR scan will be conducted again.