Enhancements in 200.8.0
Authenticator
The Authenticator
toolkit component now supports Identity-Aware Proxy (IAP) Sign-in and SignOut. This works out of the box when there's an IapConfiguration
set on the AuthenticatorState.IapConfigurations
property. As part of adding support for IAP several updates were made to the Toolkit Authenticator
which include deprecations and new recommendations:
-
Deprecated: The
Authenticator
composable that uses theonPendingOAuthUserSignIn
lambda.- Recommended: Use the updated
Authenticator
composable that accepts aonPendingBrowserAuthenticationChallenge: (BrowserAuthenticationChallenge) -> Unit
lambda. BrowserAuthenticationChallenge
is a wrapper around sign-in/out objects such asIapSignIn
,OAuthUserSignIn
, andIapSignOut
. This new parameter is similar to the previous lambda and should be used when launching and receiving IAP/OAuth flows from your ownActivity
.
- Recommended: Use the updated
-
Deprecated:
OAuthUserSignInActivity
in the AndroidManifest, previously used to handle OAuth redirect URIs.- Recommended: Replace it with
AuthenticationActivity
, which provides the same functionality and also supports IAP sign-in/sign-out completion.
- Recommended: Replace it with
-
Deprecated:
Activity.launchCustomTabs(pendingSignIn: OAuthUserSignIn?)
&AuthenticatorState.completeOAuthSignIn(intent)
- Recommended:
Activity.launchCustomTabs(pendingBrowserAuthenticationChallenge)
AuthenticatorState.completeBrowserAuthenticationChallenge(intent)
- These updated methods support both OAuth and IAP sign-in/sign-out flows.
- Recommended:
-
Deprecated:
AuthenticationManager.signOut()
as it does not support IAP sign-out.- Recommended: Use
AuthenticatorState.signOut()
. IfIapCredentials
are present in the credential cache, this will launch a browser page to invalidate the IAP session
- Recommended: Use
-
The
AuthenticatorState
now supports managing multipleOAuthUserConfiguration
instances through the newAuthenticatorState.OAuthUserConfigurations
property. This enhancement allows developers to configure and switch between multiple OAuth setups more flexibly, enabling richer multi-user or multi-tenant authentication scenarios.
See the Authenticator toolkit component for more details.
Augmented Reality - FlyoverSceneView
The FlyoverSceneView
component uses augmented reality to render a scene that is navigated by moving the device, providing a more natural navigation experience than a mouse or touch interface. FlyoverSceneView
can be customized to render any location with a variable translationFactor
to control the degree to which device movement affects the movement of the scene camera. See the FlyoverSceneView toolkit component for more details.
Augmented Reality - WorldScaleSceneView
WorldScaleSceneView
may now enter aFailedToInitialize
status inWorldScaleTrackingMode.World
if the component is unable to access the device sensor data.WorldScaleSceneView
will now receive a validmapPoint
in theSingleTapConfirmedEvent
supplied by theonSingleTapConfirmed
callback. ThismapPoint
is calculated using the ARCore Depth API. If the Depth API is not supported on a device, it will test against any horizontal or vertical planes detected at the tapped screen coordinate. If no planes are detected, themapPoint
will be null.- When the
WorldScaleSceneView
is running inGeospatial
mode, ARCore uses Google VPS when available. User can now make use of two versions of thecheckVpsAvailability()
function (with and without location parameters) available onWorldScaleSceneViewProxy
to query VPS availability. WorldScaleSceneView
now has anonTrackingErrorChanged
parameter which can be used to track transient errors after theWorldScaleSceneView
has been initialized.
See the WorldScaleSceneView toolkit component for more details.
Basemap Gallery
The BasemapGallery
toolkit component has been enhanced to allow basemaps that come from a portal item to be marked as 3D basemaps. If the new property BasemapGalleryItem.is3D
is set true
, a "3D" badge is displayed on top of the basemap's thumbnail in the gallery. See the BasemapGallery toolkit component for more details.
Feature Forms
New Features:
- Utility Network Associations Support:
- Added support for
UtilityAssociationsFormElement
s in theFeatureForm
. This allows users to view a list ofUtilityAssociation
s, navigate to associated features, and edit them. - Introduced a new
FeatureFormState
class to support navigation for associations inUtilityAssociationsFormElement
and associated features. A new overload acceptingFeatureFormState
as a parameter has been added. - Navigation to other features while viewing
UtilityAssociation
s can be disabled using theisNavigationEnabled: Boolean
parameter, which defaults totrue
.
- Added support for
- Close Icon:
- A close icon is now displayed in the form UI. The
onDismiss
parameter allows handling the tap action, and the icon can be hidden by settingshowCloseIcon: Boolean
tofalse
.
- A close icon is now displayed in the form UI. The
- Action Bar for Edits:
- When edits are present in the
FeatureForm
, an action bar is displayed at the top of the form with “Save” and “Discard” buttons. This can be hidden by settingshowFormActions: Boolean
tofalse
. A newonEditingEvent
callback of typeFeatureFormEditingEvent
is introduced to listen for save and discard actions.
- When edits are present in the
- Attachments UI has been redesigned with a modern look. New styling options are introduced with
AttachmentsElementColors.tileContainerColor
andAttachmentsElementTypography.tileSupportingTextStyle
. - The toolkit now supports downloading large attachments up to 999MB, while uploading remains limited to 50MB.
Deprecations:
- Deprecated the
FeatureForm(featureForm: FeatureForm, ..)
composable introduced in version 200.4.0. This overload does not displayUtilityAssociationsFormElements
. Use the overload that acceptsFeatureFormState
instead. - Deprecated
AttachmentsElementColors.outlineColor
andtileBorderColor
as the element is no longer outlined.
See the FeatureForm toolkit component for more details.
OfflineMapAreas
The OfflineMapAreas
composable allows users to take web maps offline. Users can download map areas created ahead-of-time by the web map author, or they can create map areas on-demand by specifying an area of interest and level of detail. Map areas are downloaded to the app's Documents directory and can be used even when the app is completely offline. Users can get information about a map area such as its size and the geographic region it covers. They can also delete a downloaded map area to free up storage space on the device. See the OfflineMapAreas toolkit component for more details.
OverviewMap
The OverviewMap
in the geoview-compose
module is a small, secondary MapView
that can be superimposed on a MapView
or SceneView
. Its purpose is to show the current viewpoint of the map or scene in a wider context. The OverviewMap
can use a customized Symbol
to display the visible area or viewpoint center for the larger MapView
or SceneView
. See the OverviewMap toolkit component for more details.