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.