diff --git a/docs/android-core/local-user/events.mdx b/docs/android-core/local-user/events.mdx index 43dcf0206..3261d799a 100644 --- a/docs/android-core/local-user/events.mdx +++ b/docs/android-core/local-user/events.mdx @@ -19,10 +19,13 @@ You can subscribe to various events on the local user by implementing `DyteSelfE Triggered when the user starts/stops the video using `enableVideo()` or `disableVideo()`. + + + ```kotlin meeting.addSelfEventsListener(object : DyteSelfEventsListener { - override fun onVideoUpdate(videoEnabled: Boolean) { - if (videoEnabled) { + override fun onVideoUpdate(isEnabled: Boolean) { + if (isEnabled) { // video is enabled, and other participants in room can see local user } else { // video is disabled, and other participants in room can not see local user. @@ -31,15 +34,38 @@ meeting.addSelfEventsListener(object : DyteSelfEventsListener { }) ``` + + + + +```java +meeting.addSelfEventsListener(new DyteSelfEventsListener() { + @Override + public void onVideoUpdate(boolean isEnabled) { + if (isEnabled) { + // video is enabled, and other participants in room can see local user + } else { + // video is disabled, and other participants in room can not see local user. + } + } +}); +``` + + + + ### Audio update Triggered when the user starts/stops the audio using `enableAudio()` or `disableAudio()`. + + + ```kotlin meeting.addSelfEventsListener(object : DyteSelfEventsListener { - override fun onAudioUpdate(audioEnabled: Boolean) { - if (audioEnabled) { + override fun onAudioUpdate(isEnabled: Boolean) { + if (isEnabled) { // audio is enabled, and other participants in room can hear local user } else { // audio is disabled, and other participants in room can not hear local user. @@ -48,89 +74,172 @@ meeting.addSelfEventsListener(object : DyteSelfEventsListener { }) ``` -### Proximity changed -Triggered whenever there is a change in proximity, indicating if the device is near an earpiece, which subsequently causes the display to turn on or off. + -```kotlin -meeting.addSelfEventsListener(object : DyteSelfEventsListener { - override fun onProximityChanged(isNear: Boolean) { - // if `isNear` is true, display should be turned off, as user might be speaking through earpiece - // if false, display should be turned on, as user might be looking at display and listening through speaker/earphones. + + +```java +meeting.addSelfEventsListener(new DyteSelfEventsListener() { + override fun onAudioUpdate(boolean isEnabled) { + if (isEnabled) { + // audio is enabled, and other participants in room can hear local user + } else { + // audio is disabled, and other participants in room can not hear local user. + } } -}) +}); ``` + + + + ### Waitlist status For meetings whose waiting room is enabled: To get status of localUser in waiting room we can use + + + ```kotlin val waitListStatus = meeting.localUser.waitListStatus ``` + + + + +```java +WaitListStatus waitListStatus = meeting.localUser.getWaitListStatus(); +``` + + + + + You can listen to those changes in `onWaitListStatusUpdate()` callbacks + + + ```kotlin meeting.addSelfEventsListener(object : DyteSelfEventsListener { override fun onWaitListStatusUpdate(waitListStatus: WaitListStatus) { // handle waitlist status here } -}); +}) ``` -### Process message within a room + -Manage messages among participants within a room. + -```kotlin -meeting.addSelfEventsListener(object : DyteSelfEventsListener { - override fun onRoomMessage(type: String, payload: Map) { - // handle the message here +```java +meeting.addSelfEventsListener(new DyteSelfEventsListener() { + @Override + public void onWaitListStatusUpdate(WaitListStatus waitListStatus) { + // handle waitlist status here } }); ``` + + + ### Screenshare callbacks for local user + + + ```kotlin meeting.addSelfEventsListener(object : DyteSelfEventsListener { override fun onScreenShareStartFailed(reason: String) { - // screenshare failed to start } - override fun onScreenShareStarted() { - // screenshare started presenting in the meeting + override fun onScreenShareUpdate(isEnabled: Boolean) { } +}) +``` + + + + - override fun onScreenShareStopped() { - // screenshared stopped by the local user +```java +meeting.addSelfEventsListener(new DyteSelfEventsListener() { + @Override + public void onScreenShareStartFailed(@NonNull String reason) { + } + + @Override + public void onScreenShareUpdate(boolean isEnabled) { } }); ``` + + + ### Device permission callbacks once local user is joined in the meeting + + + ```kotlin meeting.addSelfEventsListener(object : DyteSelfEventsListener { override fun onMeetingRoomJoinedWithoutCameraPermission() { - // local user joined without camera permission } override fun onMeetingRoomJoinedWithoutMicPermission() { - // local user joined without microphone permission + } +}) +``` + + + + + +```kotlin +meeting.addSelfEventsListener(new DyteSelfEventsListener() { + @Override + public void onMeetingRoomJoinedWithoutCameraPermission() { + } + + @Override + public void onMeetingRoomJoinedWithoutMicPermission() { } }); ``` + + + ### When local user is kicked out from the meeting by a remote user + + + ```kotlin meeting.addSelfEventsListener(object : DyteSelfEventsListener { override fun onRemovedFromMeeting() { - // removed from meeting - } + } }); ``` + + + + + +```java +meeting.addSelfEventsListener(new DyteSelfEventsListener() { + @Override + public void onRemovedFromMeeting() { + } +}) +``` + + + diff --git a/docs/android-core/local-user/introduction.mdx b/docs/android-core/local-user/introduction.mdx index 5876df349..7463daa0a 100644 --- a/docs/android-core/local-user/introduction.mdx +++ b/docs/android-core/local-user/introduction.mdx @@ -21,20 +21,18 @@ Here is a list of properties that local user provides: - `id`: ID of the local user participant. - `name`: Name of the local user. - `picture`: Picture URL of the local user. -- `clientSpecificId`: Unique participant ID. +- `customParticipantId`: Unique participant ID. - `permissions`: Permissions related to various capabilities within a meeting context for the local user. -- `videoTrack`: Video track associated with the local user. -- `screenShareTrack`: Video track used for screen sharing by the local user. - `audioEnabled`: A boolean value that shows whether the audio is currently enabled for the local user. - `videoEnabled`: A boolean value that shows whether the video is currently enabled for the local user. - `screenshareEnabled`: A boolean value that shows whether the screenshare is currently enabled for the local user. -- `presetName`: A strign value representing name of preset for local user. You can find this preset on Dyte Developer Portal +- `presetName`: A string value representing name of preset for local user. You can find this preset on Dyte Developer Portal +- `presetInfo` : A typed object representing the preset information for local user. - `roomJoined`: A boolean value representing if local user has joined the room or not. - `isCameraPermissionGranted`: A boolean value representing if local user has access to device Camera permission. - `isMicrophonePermissionGranted`: A boolean value representing if local user has access to device Microphone permission. - `waitListStatus`: Waitlist Status of the local user. It can have four values. None, Waiting, Accepted & Rejected. - ## Change default audio/video settings When local user joins the meeting, the SDK will automatically enable local user's video and audio streams. If you want to change this behavior, use the `audioEnabled` and `videoEnabled` parameters while configuring the meeting. @@ -54,7 +52,7 @@ val meetingInfo = DyteMeetingInfoV2( ```java {3,4} -DyteMeetingInfoV2 meetingInfo = DyteMeetingInfoV2( +DyteMeetingInfoV2 meetingInfo = new DyteMeetingInfoV2( AUTH_TOKEN, false, true, @@ -120,10 +118,10 @@ Mute/unmute your microphone in the meeting using `disableAudio()` and `enableAud meeting.localUser.audioEnabled // Mute Audio -meeting.localUser.disableAudio() +meeting.localUser.disableAudio {} // Unmute Audio -meeting.localUser.enableAudio() +meeting.localUser.enableAudio {} ``` @@ -131,13 +129,13 @@ meeting.localUser.enableAudio() ```java // Get current status -meeting.localUser.audioEnabled; +meeting.localUser.getAudioEnabled(); // Mute Audio -meeting.localUser.disableAudio(); +meeting.localUser.disableAudio(error -> null); // Unmute Audio -meeting.localUser.enableAudio(); +meeting.localUser.enableAudio(error -> null); ``` @@ -156,10 +154,10 @@ Enable/disable your camera in the meeting using `disableVideo()` and `enableVide meeting.localUser.videoEnabled // Disable Video -meeting.localUser.disableVideo() +meeting.localUser.disableVideo {} // Enable Video -meeting.localUser.enableVideo() +meeting.localUser.enableVideo {} ``` @@ -167,13 +165,13 @@ meeting.localUser.enableVideo() ```java // Get current status -meeting.localUser.videoEnabled; +meeting.localUser.getVideoEnabled(); // Disable Video -meeting.localUser.disableVideo(); +meeting.localUser.disableVideo(error -> null); // Enable Video -meeting.localUser.enableVideo(); +meeting.localUser.enableVideo(error -> null); ``` @@ -183,7 +181,7 @@ meeting.localUser.enableVideo(); ## Enable / Disable Screen share :::tip Note -To use screenshare on Android devices running Android API 14 and above, you will need to declare the following permission in your app's AndroidManifest.xml. +To use screenshare on Android devices running Android API 14 and above, you will need to declare the following permission in your app's AndroidManifest.xml. `` @@ -196,13 +194,13 @@ Adding above permission will require you to do extra steps on Google Play Consol ```kotlin // Get current status -meeting.localUser.screenshareEnabled +meeting.localUser.screenShareEnabled // Enable Screenshare -meeting.localUser.enableScreenshare() +meeting.localUser.enableScreenShare() // Disable Screenshare -meeting.localUser.disableScreenshare() +meeting.localUser.disableScreenShare() ``` @@ -210,13 +208,13 @@ meeting.localUser.disableScreenshare() ```java // Get current status -meeting.localUser.screenshareEnabled; +meeting.localUser.getScreenShareEnabled(); // Enable Screenshare -meeting.localUser.enableScreenshare(); +meeting.localUser.enableScreenShare(); // Disable Screenshare -meeting.localUser.disableScreenshare(); +meeting.localUser.disableScreenShare(); ``` @@ -232,9 +230,9 @@ meeting.localUser.disableScreenshare(); val devices = meeting.localUser.getVideoDevices() // switch video device -meeting.localUser.setVideoDevice(videoDevice) +meeting.localUser.setVideoDevice(devices[0]) -// on devices with only 2 camera's you can use +// on devices with only 2 cameras you can use meeting.localUser.switchCamera() ``` @@ -246,7 +244,10 @@ meeting.localUser.switchCamera() List devices = meeting.localUser.getVideoDevices(); // switch video device -meeting.localUser.setVideoDevice(videoDevice); +meeting.localUser.setVideoDevice(devices.get(0)); + +// on devices with only 2 cameras you can use +meeting.localUser.switchCamera(); ``` @@ -259,10 +260,10 @@ meeting.localUser.setVideoDevice(videoDevice); ```kotlin // get all available audio devices -val devices = meeting.localUser.getAudioDevice() +val devices = meeting.localUser.getAudioDevices() // switch video device -meeting.localUser.setAudioDevice(audioDevice) +meeting.localUser.setAudioDevice(devices[0]) ``` @@ -273,7 +274,7 @@ meeting.localUser.setAudioDevice(audioDevice) List devices = meeting.localUser.getAudioDevices(); // switch video device -meeting.localUser.setAudioDevice(audioDevice); +meeting.localUser.setAudioDevice(devices.get(0)); ``` diff --git a/docs/android-core/local-user/manage-media-devices.mdx b/docs/android-core/local-user/manage-media-devices.mdx index 46110031d..1f79dc4e4 100644 --- a/docs/android-core/local-user/manage-media-devices.mdx +++ b/docs/android-core/local-user/manage-media-devices.mdx @@ -15,32 +15,78 @@ Media devices represents the hardware for the camera, microphone and speaker devices. To get the list of media devices that are currently being used, you can use the following methods: + + + ```kotlin // Get all audio devices -val audioDevices: List = meeting.self.getAudioDevices(); +val audioDevices: List = meeting.localUser.getAudioDevices() + +// Get all video devices +val videoDevices: List = meeting.localUser.getVideoDevices() +``` + + + + + +```java +// Get all audio devices +List audioDevices = meeting.getLocalUser().getAudioDevices(); // Get all video devices -val videoDevices: List = meeting.self.getVideoDevices(); +List videoDevices = meeting.getLocalUser().getVideoDevices(); ``` + + + ## Set audio device To set a device as an active device, you can call `setAudioDevice` method. This takes a `DyteAudioDevice` object. + + + ```kotlin -meeting.self.setAudioDevice(device); +meeting.localUser.setAudioDevice(device) ``` + + + + +```kotlin +meeting.getLocalUser().setAudioDevice(device); +``` + + + + ## Set video device To set a video device as an active device, you can call `setVideoDevice` method. This takes a `DyteVideoDevice` object. + + + ```kotlin -meeting.self.setVideoDevice(device); +meeting.localUser.setVideoDevice(device) ``` + + + + +```kotlin +meeting.getLocalUser().setVideoDevice(device); +``` + + + + Android Core Manage Media Devices diff --git a/docs/android-core/local-user/manage-permissions.mdx b/docs/android-core/local-user/manage-permissions.mdx index 652d95b32..0156d08c1 100644 --- a/docs/android-core/local-user/manage-permissions.mdx +++ b/docs/android-core/local-user/manage-permissions.mdx @@ -15,6 +15,9 @@ tags: To get media permissions (audio/video) for localUser we can do as follows + + + ```kotlin val isCameraPermissionGranted = meeting.localUser.isCameraPermissionGranted @@ -22,21 +25,55 @@ val isMicrophonePermissionGranted = meeting.localUser.isMicrophonePermissionGranted ``` + + + + +```java +boolean isCameraPermissionGranted + = meeting.localUser.isCameraPermissionGranted(); +boolean isMicrophonePermissionGranted + = meeting.localUser.isMicrophonePermissionGranted(); +``` + + + + Similarly to listen to callbacks regarding media permissions once user joins the meeting + + + ```kotlin meeting.addSelfEventsListener(object : DyteSelfEventsListener { override fun onMeetingRoomJoinedWithoutCameraPermission() { - // when meeting room is joined without camera permission } override fun onMeetingRoomJoinedWithoutMicPermission() { - // when meeting room is joined without microphone permission + } +}) +``` + + + + + +```kotlin +meeting.addSelfEventsListener(new : DyteSelfEventsListener() { + @Override + public void onMeetingRoomJoinedWithoutCameraPermission() { + } + + @Override + public void onMeetingRoomJoinedWithoutMicPermission() { } }); ``` + + + Android Core Media Permissions