You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -36,6 +37,7 @@ Composites enable developers to easily integrate a whole calling experience into
36
37
| Call Controls | Mute/unmute call |
37
38
|| Video on/off on call |
38
39
|| End call |
40
+
|| Hold/Resume Call on Audio Interruption |
39
41
40
42
## Supported Identities
41
43
@@ -73,11 +75,15 @@ The calling composite offers to adapt to any screen size that would bring suppor
73
75
74
76
## Localization
75
77
76
-
Localization is a key to making products that can be used across the world and by people who speak different languages. The Mobile UI Library now provides support for 13 languages: ***English, Spanish, French, German, Italian, Japanese, Korean, Dutch, Portuguese, Russian, Turkish and Chinese*** and RTL capabilities. [How to add localization to your app.](../../../how-tos/ui-library-sdk/localization.md)
78
+
Localization is a key to making products that can be used across the world and by people who speak different languages. The Mobile UI Library now provides support for 12 languages: ***English, Spanish, French, German, Italian, Japanese, Korean, Dutch, Portuguese, Russian, Turkish and Chinese*** and RTL capabilities. [How to add localization to your app.](../../../how-tos/ui-library-sdk/localization.md)
77
79
78
-
## Data Model Injection
80
+
## Accessibility
79
81
80
-
The Mobile UI Library gives the developers the ability to provide a more customized experience. At launch, developers can now inject an optional Local Data Options. This object can contain an image that represents the avatar to render, and a display name they can optionally display instead. None of this information will be sent to Azure Communication Services and will be only held locally in the Mobile UI library. [How to inject user data model.](../../../how-tos/ui-library-sdk/data-model.md)
82
+
Accessibility is a key focus of the calling libraries. Screen Readers are supported to make important announcements regarding calling status and to help ensure that visibility impaired users can effectively participate in using the application.
83
+
84
+
## Participant View Customization
85
+
86
+
The Mobile UI Library gives the developers the ability to modify both Local and Remote Participants and how they are displayed in the call. On call launch the developer can supply a local avatar and custom display name to show to the local user. For Remote Users, methods are available to allow customization of avatars as they join the meetings. [How to customize participant views.](../../../how-tos/ui-library-sdk/data-model.md)
81
87
82
88
## Recommended Architecture
83
89
@@ -100,7 +106,7 @@ These client libraries also require the context for the call they'll join. Simil
Azure Communication UI [open source library](https://github.com/Azure/communication-ui-library-android) for Android and the sample application code can be found [here](https://github.com/Azure-Samples/communication-services-android-quickstarts/tree/main/ui-library-quick-start)
14
14
15
-
### Local Participant View Data Injection
15
+
### Local Participant View Customization
16
16
17
-
The UI Library now gives developers the ability to provide a more customized experience. At launch, developers can now inject an optional Local Data Options. This object can contain a bitmap that represents the avatar to render, and a display name they can optionally display instead. None of this information will be sent to Azure Communication Services and will be only held locally in the UI library.
17
+
The UI Library gives developers the ability to provide a more customized experience regarding Participant information. At launch, developers can optionally add Participant View Data. This local data is not shared with the server and can be used to customize the display name and avatar of the local user.
18
18
19
-
#### Participant View Data
19
+
#### Local Participant View Data
20
20
21
-
`ParticipantViewData` is a class that set the `RenderedDisplayName`, `AvatarBitMap` and `ScaleType`for avatar control. This class is injected to UI Library to set avatar information.
21
+
`CallCompositeParticipantViewData` is a class that set the `displayName`, `avatarBitmap` and `scaleType`for avatar control. This class is passed to the `CallCompositeLocalOptions` in order to customize the local participants view information.
22
22
23
-
#### Local Settings
23
+
This class is held in the `CallCompositeLocalOptions` object that represents options used locally on the device making the call.
24
24
25
-
`LocalSettings` is a wrapper that set the persona data for UI Library components using a `ParticipantViewData`. By default, the UI library will display the `displayName`injected in `GroupCallOptions`and `TeamsMeetingOptions`. If `ParticipantViewData`is injected, the `RenderedDisplayName`, `AvatarBitMap` will be displayed for local participant.
25
+
`displayName` differs from the `displayName` passed in via the `CallCompositeRemoteOptions`. `CallCompositeParticipantViewData``displayName` is only used locally as an override, where `CallCompositeRemoteOptions``displayName`is passed to the server and shared with other participants. When `CallCompositeParticipantViewData``displayName`is not provided, `CallCompositeRemoteOptions``displayName` is used.
26
26
27
27
#### Usage
28
28
29
-
To use the `LocalSettings`, pass the instance of `ParticipantViewData` and inject `LocalSettings` to `callComposite.launch`.
29
+
To use the `CallCompositeLocalOptions`, pass the instance of `CallCompositeParticipantViewData` and inject `CallCompositeLocalOptions` to `callComposite.launch`.
30
30
31
31
#### [Kotlin](#tab/kotlin)
32
32
33
33
```kotlin
34
-
val viewData =ParticipantViewData("user_name") //bitmap is optional
| :::image type="content" source="media/android-model-injection.png" alt-text="Screenshot of a Android data custom model injection."::: | :::image type="content" source="media/android-model-injection-name.png" alt-text="Screenshot of a Android data custom model injection with name."::: |
51
51
52
-
### Remote Participant View Data Injection
52
+
### Remote Participant View Customization
53
53
54
-
On remote participant join, developers can inject the participant view data for remote participant. This participant view data can contain a bitmap that represents the avatar to render, and a display name they can optionally display instead. None of this information will be sent to Azure Communication Services and will be only held locally in the UI library.
54
+
In some instances, you may wish to provide local overrides for remote participants to allow custom avatars and titles.
55
+
56
+
The process is similar to the local participant process, however the data is set when participants join the call. As a developer you would need to add a listener to when remote participants join the call, and then call a method to set the `CallCompositeParticipantViewData` for that remote user.
55
57
56
58
#### Usage
57
59
58
60
To set the participant view data for remote participant, set `setOnRemoteParticipantJoinedHandler`. On remote participant join, use callComposite `setRemoteParticipantViewData` to inject view data for remote participant. The participant identifier [CommunicationIdentifier](https://azure.github.io/azure-sdk-for-android/azure-communication-common/index.html) is to uniquely identify a remote participant.
59
61
62
+
Calls to `setRemoteParticipantViewData` return a result of `CallCompositeSetParticipantViewDataResult`, which has the following values.
Copy file name to clipboardExpand all lines: articles/communication-services/how-tos/ui-library-sdk/includes/localization/android.md
+70-30Lines changed: 70 additions & 30 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -14,55 +14,95 @@ Azure Communication UI [open source library](https://github.com/Azure/communicat
14
14
15
15
### Available Languages
16
16
17
-
The following is table of `CommunicationUISupportedLocale` with out of the box translations. If you want to localize the composite, pass the `Locale` from `CommunicationUISupportedLocale` into `LocalizationConfiguration` as options into `CallComposite`.
17
+
The following is table of `CallCompositeSupportedLocale` with out of the box translations. If you want to localize the composite, pass the `Locale` from `CallCompositeSupportedLocale` into `CallCompositeLocalizationOptions` as options into `CallComposite`.
`LocalizationConfiguration` is an options wrapper that sets all the strings for Mobile UI Library components using a `CommunicationUISupportedLocale`. By default, all text labels use English strings. If desired `LocalizationConfiguration` can be used to set a different language by passing a `Locale` object from `CommunicationUISupportedLocale`. Out of the box, the UI library includes a set of `Locale` usable with the UI components and composites.
38
+
`CallCompositeLocalizationOptions` is an options wrapper that sets all the strings for Mobile UI Library components using a `CallCompositeSupportedLocale`. By default, all text labels use English strings. If desired `CallCompositeLocalizationOptions` can be used to set a different language by passing a `Locale` object from `CallCompositeSupportedLocale`. Out of the box, the UI library includes a set of `Locale` usable with the UI components and composites.
39
39
40
-
You can also obtain list of `Locale` by the static function `CommunicationUISupportedLocale.getSupportedLocales()`.
40
+
You can also obtain list of `Locale` by the static function `CallCompositeSupportedLocale.getSupportedLocales()`.
To use the `LocalizationConfiguration`, specify a `CommunicationUISupportedLocale` and pass it to the `CallCompositeOptions`. For the example below, we'll localize the composite to French.
46
+
To use the `CallCompositeLocalizationOptions`, specify a `CallCompositeSupportedLocale` and pass it to the `CallCompositeBuilder`. For the example below, we'll localize the composite to French.
47
47
48
-
```Kotlin
49
-
val callComposite:CallComposite=CallCompositeBuilder().localization(LocalizationConfiguration(CommunicationUISupportedLocale.FR).build()
Certain cultures (Arabic, Hebrew, etc.) may need for localization to have right-to-left layout. You can specify the `layoutDirection` as part of the `LocalizationConfiguration`. The layout of the composite will be mirrored but the text will remain in the direction of the string.
78
+
Certain cultures (Arabic, Hebrew, etc.) may need for localization to have right-to-left layout. You can specify the `layoutDirection` as part of the `CallCompositeLocalizationOptions`. The layout of the composite will be mirrored but the text will remain in the direction of the string.
79
+
80
+
#### [Kotlin](#tab/kotlin)
55
81
56
-
```Koltin
57
-
val callComposite:CallComposite=CallCompositeBuilder().localization(LocalizationConfiguration(CommunicationUISupportedLocale.FR,LaytoutDirection.RTL)).build()
Tooverride a particular string, you can find the list of localization keys here for the key-value pair. You can specify the `languageCode` to be one of the supported languages, andwhen a key isn't provided, will fall back to our supported translation string. If you specified an unsupported language, you should provide translations for all the keys for that language, and will fall back to English strings when a key isn't provided.
99
+
// CallCompositeSupportedLocale provides list of supported locale
0 commit comments