wear protolayout
| Latest Update | Stable Release | Release Candidate | Beta Release | Alpha Release |
|---|---|---|---|---|
| October 22, 2025 | 1.3.0 | - | - | 1.4.0-alpha02 |
Declaring dependencies
To add a dependency on wear-protolayout, you must add the Google Maven repository to your project. Read Google's Maven repository for more information.
Add the dependencies for the artifacts you need in the build.gradle file for
your app or module:
Groovy
dependencies { // Use to implement support for Wear ProtoLayout Expressions implementation "androidx.wear.protolayout:protolayout-expression:1.3.0" // Use to implement support for Wear ProtoLayout implementation "androidx.wear.protolayout:protolayout:1.3.0" // Use to utilize components and layouts with Material design in your ProtoLayout implementation "androidx.wear.protolayout:protolayout-material:1.3.0" }
Kotlin
dependencies { // Use to implement support for Wear ProtoLayout Expressions implementation("androidx.wear.protolayout:protolayout-expression:1.3.0") // Use to implement support for Wear ProtoLayout implementation("androidx.wear.protolayout:protolayout:1.3.0") // Use to utilize components and layouts with Material design in your ProtoLayout implementation("androidx.wear.protolayout:protolayout-material:1.3.0") }
For more information about dependencies, see Add build dependencies.
Feedback
Your feedback helps make Jetpack better. Let us know if you discover new issues or have ideas for improving this library. Please take a look at the existing issues in this library before you create a new one. You can add your vote to an existing issue by clicking the star button.
See the Issue Tracker documentation for more information.
Version 1.4
Version 1.4.0-alpha02
October 22, 2025
androidx.wear.protolayout:protolayout-*:1.4.0-alpha02 is released. Version 1.4.0-alpha02 contains these commits.
New Features
- Added new Platform event source (
isInAmbientMode) describing whether the device is in ambient mode or not (Ief832)
API Changes
- The
PendingIntentclickablenow accepts a fallback action (LoadAction/LaunchAction) to be used whenPendingIntentis not supported by theProtoLayoutRenderer. Fallback action will automatically be picked up and placed in the layout when the version of the Renderer is lower than the one supportingPendingIntent. (I6eee2, b/450259727) protoLayoutScopefield withinMaterialScopeis now madeNonNullfor easier usage whenMaterialScopeis created viamaterialScopeWithResources. In addition, there is ahasProtoLayoutScopefunction to check for the presence of it. (I1858f, b/450067019)
Version 1.4.0-alpha01
September 24, 2025
androidx.wear.protolayout:protolayout-*:1.4.0-alpha01 is released. Version 1.4.0-alpha01 contains these commits.
New Features
- Added helper method for
LayoutModifierthat makes an element fade in as the tile is becoming visible. (I38531, b/390345969) - Added
materialScopeWithResourcesto support M3MaterialScopeconcept that also takes care of automatic resource registration. Within it, added new helper methods for images (backgroundImageavatarImageand icon) that remove the need for manually registering resources inonTileResourceRequestwhen used. (I525bd, b/428692714) ProtoLayoutKotlin helpers forImageandImageResourcesfor usage withProtoLayoutScopeand automatic resource registration. (Iada82, b/430584304)- Added getter for how many Lottie properties are allowed in customization of one Lottie animation. (I73733, b/436532706)
- Add API in
AndroidLottieResourceByResIdto allow customizing Lottie animation via properties and add API for creating property for theming slot with the slot ID to the specified color. (I301b3, b/423581481) - Add provider APIs for accepting
PendingIntentas click action (I01978, b/433802488) - Add new API in
Image.Builder-setImageResourceto set resource object directly to the Image inonTileRequest, without a need to register it in mapping inonTileResourcesRequest. (Ifa69a, b/428693523) - Added
ProtoLayoutScopeconcept in preparation for better resources handling in Tiles. (I132ce, b/428692423) ProtoLayoutMaterial3MaterialScopenow exposesContextfield as public, for use in methods within the scope, without the need to pass it around. (I0e5cc, b/414559956)- Make heading semantic APIs public (I75299, b/413653475)
- Expose
ARC_DIRECTION_*consts as public for use inArc/ArcLine/ArcText/DashedArcLine. (I83959, b/427556439)
API Changes
- We have deprecated
Image.Builder()andImage.Builder.setResourceIdmethods in favour of the new automatic resource registration API, available inImage.Builder(ProtoLayoutScope)andImage.Builder.setImageResourceAPIs that remove the need for overridingonTileResourcesRequest. (I7bfe6, b/432758526) - Move APIs for creating
ProtoLayoutScopefrom restricted to public. However, they shouldn't be used as the system already handles those calls. (I1d8e8, b/432758251)
Bug Fixes
- Add implementation for supporting
PendingIntentinProtoTiles(I38167, b/430610429) - Add
invalidateLayoutmethod. (Ief898) - Moving the default minSdk from API 21 to API 23 (Ibdfca, b/380448311, b/435705964, b/435705223)
ImageResourcenow hashashCodeandequalsmethods. (I650ee, b/428692423, b/428693523)- Add new proto message
PendingIntentActionand its wrapper builder (Ie2aca, b/427643502) - Reduce how often
ZoneIdinstance is created. (I284d3) - Apply default content description to the single slot
textButton. (I0dc8a, b/415001534) - Fix calculations for adjusting max lines in the renderer side. (I933bc, b/414353620)
Version 1.3
Version 1.3.0
June 4, 2025
androidx.wear.protolayout:protolayout-*:1.3.0 is released. Version 1.3.0 contains these commits.
Important changes since 1.2.0
- Material 3 design comes to the watch, with components and layouts that are optimized for the round display and scale appropriately from small to large screen sizes
- This includes Kotlin-only,
protolayout-material3library with more Compose-like APIs for the following components and features: - Dynamic color theme coming from the system and watch face with the latest Material3 theme for colors, shapes and typography
MaterialScopefor taking care of all opinionated defaults and easier customizationiconEdgeButton,textEdgeButtoniconButton,textButton,button,imageButton,avatarButton,compactButtontitleCard,appCard,graphicDataCard,iconDataCard,textDataCardcircularProgressIndicator,segmentedCircularProgressIndicatorprimaryLayout,buttonGroup- All components work across any SDK levels and
ProtoLayoutRenderer version, supplying sensible fallbacks where applicable
- This includes Kotlin-only,
- More Kotlin-friendly, Compose-like APIs for base ProtoLayout elements
LayoutModifierwith ability to add the most of modifiers as chained functions (padding,contentDescription(includingclearSemantics),background,clip,opacityetc.), convertible to the existingModifiersobjectLayoutColorsandLayoutStringas types with easier support for using dynamic fields and constraintstextandfontStyle- better map support for
StateBuilder, includingDynamicDataMapand factory methods such asintAppDataKeyfor easier creation ofAppDataKeyobjects
- Lottie animations support including option to set different triggers on when animation should start, for example when layout is loaded or when layout becomes visible
- Improved gradient support:
- Linear gradient API as part of
Brushthat can be used inBackgroundmodifiers for elements such asBox,Spacer, etc. … - Allow dynamic color values in
ColorStopused for linear and sweep gradient - Existing Sweep Gradient in arc objects now supports dynamic colors and start and end angles
- Platform data binding in
protolayout-expressionto receive information anytime that layout’s visibility is changed, which for example can be use to hide certain parts of the layout while tile is being swiped to - Testing library -
protolayout-testing- has been added to support easier Unit test coverage for any ProtoLayout elements - New element
DashedArcLinewith improved set of features so that line can have dashes, as opposed to the existingArcLine ArcSpacersupport for setting its length in DP dimension instead of degrees- Added roundness
FontSettingaxis applicable to some fonts
Version 1.3.0-rc01
May 20, 2025
androidx.wear.protolayout:protolayout-*:1.3.0-rc01 is released with no changes from the previous release. Version 1.3.0-rc01 contains these commits.
Version 1.3.0-beta02
May 7, 2025
androidx.wear.protolayout:protolayout-*:1.3.0-beta02 is released. Version 1.3.0-beta02 contains these commits.
Bug Fixes
- We have made an important improvement in the Typography design values that are applied on API 36 and above. This is because from API 36, all Tiles will be in the system font, so this change introduces better consistency in the Tiles carousel. (If316f)
Text,Spacer,ArcLineandDashedArcLinebuilders won’t throw iflayoutConstraintsfor dynamic values are not set. Note that older renderers still require thelayoutConstraintsto be set and will ignore any dynamic value that doesn’t have it set. (Ic52e8)- Add heading semantics modifier to indicate that a layout element is heading for a section of content for accessibility purpose, and mark the text in the title slot of
primaryLayoutto be accessibility heading by default. (Iae1fb) - Final UX polish of the
primaryLayoutwhere space between title slot and main slot is decreased to 4dp instead of 6dp on smaller screens. (I0e056) - Apply default content description to
textEdgeButton. (Ifaf8b) - Minor update to the
avatarButtoninner padding. (I0910b)
Version 1.3.0-beta01
April 9, 2025
androidx.wear.protolayout:protolayout-*:1.3.0-beta01 is released. Version 1.3.0-beta01 contains these commits.
New Features
The 1.3.0-beta01 release of Wear ProtoLayout indicates that this release of the library is feature complete and the API is locked (except where marked as experimental). Wear ProtoLayout 1.3 includes the following new functionalities and APIs:
- Material 3 design comes to the watch, with components and layouts that are optimized for the round display and scale appropriately from small to large screen sizes
- This includes Kotlin-only,
protolayout-material3library with more Compose-like APIs for the following components and features: - Dynamic color theme coming from the system and watch face with the latest Material3 theme for colors, shapes and typography
MaterialScopefor taking care of all opinionated defaults and easier customizationiconEdgeButton,textEdgeButtoniconButton,textButton,button,imageButton,avatarButton,compactButtontitleCard,appCard,graphicDataCard,iconDataCard,textDataCardcircularProgressIndicator,segmentedCircularProgressIndicatorprimaryLayout,buttonGroup- All components work across any SDK levels and ProtoLayout Renderer version, supplying sensible fallbacks where applicable
- This includes Kotlin-only,
- More Kotlin-friendly, Compose-like APIs for base ProtoLayout elements
LayoutModifierwith ability to add the most of modifiers as chained functions (padding,contentDescription(includingclearSemantics),background,clip,opacityetc.), convertible to the existingModifiersobjectLayoutColorsandLayoutStringas types with easier support for using dynamic fields and constraintstextandfontStyle- better map support for
StateBuilder, includingDynamicDataMapand factory methods such asintAppDataKeyfor easier creation ofAppDataKeyobjects
- Lottie animations support including option to set different triggers on when animation should start, for example when layout is loaded or when layout becomes visible
- Improved gradient support:
- Linear gradient API as part of
Brushthat can be used inBackgroundmodifiers for elements such asBox,Spacer, etc. … - Allow dynamic color values in
ColorStopused for linear and sweep gradient - Existing Sweep Gradient in arc objects now supports dynamic colors and start and end angles
- Platform data binding in
protolayout-expressionto receive information anytime that layout’s visibility is changed, which for example can be use to hide certain parts of the layout while tile is being swiped to - Testing library -
protolayout-testing- has been added to support easier Unit test coverage for any ProtoLayout elements - New element
DashedArcLinewith improved set of features so that line can have dashes, as opposed to the existingArcLine ArcSpacersupport for setting its length in DP dimension instead of degrees- Added roundness
FontSettingaxis applicable to some fonts
Version 1.3.0-alpha10
March 12, 2025
androidx.wear.protolayout:protolayout-*:1.3.0-alpha10 is released. Version 1.3.0-alpha10 contains these commits.
New Features
- Add helper for Brush in kotlin Background Modifier. (I995de)
- Mandatory Android Context field has been made public in
MaterialScopeto allow for easier usage in developers' functions that are creating components for Material3 tiles. (I7df73)
API Changes
- Rename api
platformVisibilityStatustoPlatformEventSources.isLayoutVisibleand add a new experimental APIPlatformEventSources.isLayoutUpdatePending. (Ie1e04)
Bug Fixes
- Margins for
primaryLayoutare now properly rounded up instead, which can have effect on some layout up to 2dp space less for the main slot. (I8f5d3) - Clarification of default dynamic color theme in
ProtoLayoutMaterial3 components. (Iff5f3) Typography.NUMERAL_*typographies are no longer tabular/monospace by default. If text is animating, it is highly recommended to addFontSetting.tabularNum()setting to it. In all other cases this monospace option is not needed and there will be more available characters by not using it. (Id3cd9)- Clarification of default dynamic color theme in
ProtoLayoutMaterial3 components. (I9d831)
Version 1.3.0-alpha09
February 26, 2025
androidx.wear.protolayout:protolayout-*:1.3.0-alpha09 is released. Version 1.3.0-alpha09 contains these commits.
New Features
- Added experimental modifiers for
enterTransitionandexitTransition(I4a4d6) - We have added additional platform binding to receive the visibility status of full layout, whenever it's changed. (I250c3)
- Allow injecting testing app state and platform data into
LayoutElementAssertionsProviderfor evaluating dynamic values. (Ib5fcb) - Add corner filters to the protolayout testing library (Ie2361)
ButtonColors,CardColorsandProgressIndicatorColorsnow support copy method, with optional override of some parameters. (Ie2054)
API Changes
- Add dynamic data binding support to the testing library (Ib98de)
- Fix
imageButtonwhen used withbackgroundImagefunction by removing overlay. Additionally, allow forbackgroundImagefunction to allow specifying null for overlay color, meaning that overlay won't be applied. (Ibec3c)
Bug Fixes
- Changed default
hasValueOfTypemethod to throwUnsupportedOperationExceptioninstead ofIllegalArgumentException. (Ia36c3) - Default color token values are update to reflect the latest spec. (I75d44)
- Fixes for aliasing issue visible on arc lines in AndroidX tiles renderer. (I88190)
Version 1.3.0-alpha08
February 12, 2025
androidx.wear.protolayout:protolayout-*:1.3.0-alpha08 is released. Version 1.3.0-alpha08 contains these commits.
New Features
- Add
FontSettinglist parameter for Material3 text. (Ic102d) - Added
DynamicDataMapclass whichStateBuildernow supports for a better type safe Kotlin API for app states (I012ba) - Added factory methods such as
intAppDataKeyfor easier creation ofAppDataKeyobjects (Icea2a) DynamicDataValuenow has ahasValueOfType(Class<?>)method in addition tohasInt/hasColor/.... methods (I4f7a6)- We have added
errorDimto the Material3 ProtoLayoutColorScheme, for high priority errors or emergency actions such as safety alerts. (Ia17bb) - We have added a guard against a crash when accessing the global reducemotion setting, which was triggered on some platforms where that setting was not provided. (I01e2c)
API Changes
addKeyToValueMappingis renamed toaddToStateMapandDynamicDataMap.putmethods are removed as they were redundant. (Ibe9dd)- Material3 Typography now supports roundness variable axis for system fonts that support this axis. ProtoLayout
FontSettingsupports roundness axis for fonts that support this axis. (I33eb5) - Renamed
multilineAlignmentto alignment in Material3 text method. (I2b66b) - Update the circular progress indicator to be Box type, also specify the
mainContentinconstructGraphicto be Box type (I5a3dc) - Better support for using circular progress indicator in graph (I039db)
Bug Fixes
- Allow dynamic values in
ColorStopand also for start/end angles inSweepGradient. (I0146d) - Docs fixes. (I4a63a)
- Updated Material 3 components (
graphicCardandavatarButton) to provide fallback whenweightexpand dimension is not supported (e.g. below API 33). Updated text component to fallback toTEXT_OVERFLOW_ELLIPSIZE_ENDwhenTEXT_OVERFLOW_ELLIPSIZEis not supported by the renderer. (I19e2c) - Docs update for
PrimaryLayoutMargins. (Ibaf7b)
Version 1.3.0-alpha07
January 29, 2025
androidx.wear.protolayout:protolayout-*:1.3.0-alpha07 is released. Version 1.3.0-alpha07 contains these commits.
New Features
- Added API option to set different triggers for Lottie animations. Additionally, added API for triggers fired when layout is visible (I8272d)
- Added
border,visibilityandopacitymodifiers. (I6d3dd) - Added avatar button to ProtoLayout Material3 component. (Idb5ae)
- We are now allowing margins (side and in some cases bottom) to be customized in Material3
primaryLayout. (Ib22f6) - Add the segmented variant of the circular progress indicator. (I6a648)
- Added compact button component to ProtoLayout Material3. (Ia3c5c)
- Added pill shape button and image button components to ProtoLayout Material3. (Ifb88a)
API Changes
LayoutModfier.foldInis now calledfoldRightto better reflect its expected behaviour (Idf242)VisibleOncetrigger is now experimental. (Ib2d26)- Remove
withOpacityfrom the public API as there is a graphics library alternative. (I030c2) - Renamed top level methods in
LayoutString.ktandLayoutColor.ktto have Java friendly names. (I7aff0) - Removed non-ProtoLayout typographies in Material3. (Idd9ae)
- Add suffix Color to fields in
*Colorsclasses in Material3. (I2d114)
Bug Fixes
- Add
EdgeButtonfallback implementation for older renderer without asymmetrical corners support. (I63364) - Add fallback implementation of the circular progress indicator with older renderer. (I0f134)
Version 1.3.0-alpha06
January 15, 2025
androidx.wear.protolayout:protolayout-*:1.3.0-alpha06 is released. Version 1.3.0-alpha06 contains these commits.
New Features
LayoutColorto support both static and dynamic color types (I4c89b)- Added
ProtoLayout Material3textButton component. (Id680d) - Add
iconButtonProtoLayout Material3 component. (Ica3f0) - Added ProtoLayout Material3 button container component. (I17a38)
- Added support for Chainable semantic modifiers to protolayout-material3 (I4af62)
- Added ProtoLayout Material3 single segment
CircularProgressIndicator(I2c8a2) - Added
padding,metadatamodifiers (I8720a) - Added
background,clipandclickablemodifiers (I35478) - Add
LinearGradientto Brush and allow it to be used in the Background Modifier. (Ic4dea) - Add small size for appCard and
titleCard. (I91f98) - Added ProtoLayout Material3
graphicDataCardcomponent. (I92be7) - Added ProtoLayout Material3
iconDataCardandtextDataCardcomponents. (I4e1e4) - Added ProtoLayout Material3
appCardcomponent. (Id4c57) - Abstract
EdgeButtonColorstoButtonColors. (I83624) - Added ProtoLayout Material3
titleCardcomponent. (I2dc72)
API Changes
- ProtoLayout Material3 API now accepts
LayoutStringto support both static and dynamic texts. (I9c24a)
Bug Fixes
- Add renderer implementation for inflating
DashedArcLine(I0c700) - Renderer change for allowing
ArcSpacerto take dp length. (I1437b)
Version 1.3.0-alpha05
December 11, 2024
androidx.wear.protolayout:protolayout-*:1.3.0-alpha05 is released. Version 1.3.0-alpha05 contains these commits.
New Features
- Added
LayoutStringto support bindable layout string fields. (Ida650) - Added
ProtoLayout Material3card container component. (Ic985a)
Bug Fixes
- This library now uses JSpecify nullness annotations, which are type-use. Kotlin developers should use the following compiler argument to enforce correct usage:
-Xjspecify-annotations=strict(this is the default starting with version 2.1.0 of the Kotlin compiler). (Id1f9b, b/326456246)
Version 1.3.0-alpha04
November 13, 2024
androidx.wear.protolayout:protolayout-*:1.3.0-alpha04 is released. Version 1.3.0-alpha04 contains these commits.
New Features
- Updated Material3 shape to be a class with fields that hold the actual Corner value, same as in Wear Compose. (Ied8cd)
- Updated Material3 colors to include
ColorSchemeconcept, same as in Wear Compose. (If645e) - Add multiple commonly used matcher to the testing library. (Ie5cec)
Version 1.3.0-alpha03
October 30, 2024
androidx.wear.protolayout:protolayout-*:1.3.0-alpha03 is released. Version 1.3.0-alpha03 contains these commits.
New Features
- Add
LayoutElementAssertionsProvider,LayoutElementAssertionandLayoutElementMatcherto the testing library (Id1110)
Version 1.3.0-alpha02
October 16, 2024
androidx.wear.protolayout:protolayout-*:1.3.0-alpha02 is released. Version 1.3.0-alpha02 contains these commits.
New Features
- Initial version of Material 3 library. Includes
text,edgeButton,buttonGroupandprimaryLayoutcomponents.
Security Fixes
- As of this change, androidx compiles against protobuf 4.28.2 in order to address CVE-2024-7254. Upgrade your dependency on version 1.3.0-alpha01 of
androidx.wear.protolayout:protolayout-protoandandroidx.wear.protolayout:protolayout-external-protobufto 1.3.0-alpha02 to address the vulnerability risk.
External Contribution
Version 1.3.0-alpha01
October 2, 2024
androidx.wear.protolayout:protolayout-*:1.3.0-alpha01 is released. Version 1.3.0-alpha01 contains these commits.
Bug Fixes
- Clarified that Roboto and Roboto Flex font family names availability is device dependent. (I193be)
- Enabled Roboto Flex font family in AndroidX Tile renderer. (I08e94)
Version 1.2
Version 1.2.1
October 16, 2024
androidx.wear.protolayout:protolayout-*:1.2.1 is released. Version 1.2.1 contains these commits.
Security Fixes
- As of this change, androidx compiles against protobuf 4.28.2 in order to address CVE-2024-7254. Upgrade your dependency on version 1.2.0 of
androidx.wear.protolayout:protolayout-protoandandroidx.wear.protolayout:protolayout-external-protobufto 1.2.1 to address the vulnerability risk.
Version 1.2.0
August 7, 2024
androidx.wear.protolayout:protolayout-*:1.2.0 is released. Version 1.2.0 contains. these commits.
Important changes since 1.1.0
FontStylehas been updated to have additional font support for the variable axes and better font selection API to support upcoming Flex fonts.- Additional Modifiers support:
- Transformation modifier offering translation, rotation and scaling with or without animations.
- Specifying different values (horizontal and vertical) for each corner radius.
- Improved accessibility of all touch targets by extending the tappable area of any element that uses Clickable modifier to be at least
48dpby48dp. - Improved
PrimaryLayoutandEdgeContentLayoutby addingsetResponsiveContentInsetEnabledto better support responsive behavior of these layouts across different screen sizes and improve Tiles consistency. - Improved scaling/non-scaling of the Material Text for Android 14's non-linear font scaling.
- Improved support for RTL layout direction on all arc elements.
Additional changes
- For a more complete set of the changes introduced in version 1.1.0, see the beta01 release notes.
Version 1.2.0-rc01
July 24, 2024
androidx.wear.protolayout:protolayout-*:1.2.0-rc01 is released. Version 1.2.0-rc01 contains these commits.
Bug Fixes
- We have fixed the standard Material Chip so it can be used as an icon only if none of the primary or secondary label is passed in. (Iceef9)
- Documentation for Material layouts has been updated to include visuals from the relevant page for easier understanding of layouts. (I0256a)
Version 1.2.0-beta01
July 10, 2024
androidx.wear.protolayout:protolayout-*:1.2.0-beta01 is released. Version 1.2.0-beta01 contains these commits.
New Features
The 1.2.0-beta01 release of Wear ProtoLayout indicates that this release of the library is feature complete and the API is locked (except where marked as experimental). Wear ProtoLayout 1.2 includes the following new functionalities and APIs:
FontStylehas been updated to have additional font support as following:- Setting different font variation setting such as
FontSetting.weightandFontSetting.width - Setting the same width for all numeric characters - tabular numerals (
FontSetting.tnumfont feature setting) - Improved font selection APIs to support the upcoming flex fonts by specifying preferred font family names to be used.
- Setting different font variation setting such as
- Extended
Cornermodifier to support specifying eachCornerRadiuswith a separate horizontal and vertical values to allow building elements with asymmetric corners. - Added a new
Transformationmodifier offering translation, rotation and scaling ofLayoutElement. These transformations can be animated by using dynamic values. - Added
setArcDirectionwithClockwise,CounterClockwiseandNormaloptions to all arc elements (Arc,ArcLineandArcText) for better support in different layout directions (such as LTR and RTL). - Improved accessibility of all touch targets by extending the tappable area of any element that uses
Clickablemodifier to be at least48dpby48dp. - Improved
PrimaryLayoutandEdgeContentLayoutby addingsetResponsiveContentInsetEnabledto better support responsive behavior of these layouts across different screen sizes and improve Tiles consistency. Added linter warning to suggest usage of these APIs with a quick fix. - Improved scaling/non-scaling of the Material
Textfor Android 14's non-linear font scaling.
API Changes
- Default font family name (
DEFAULT_SYSTEM_FONT) is removed as it is implied by not using thepreferredFontFamiliesAPI. (I39dab) - Parameter passed in to the
FontSetting.widthshould be positive. (I1266f)
Version 1.2.0-alpha05
June 26, 2024
androidx.wear.protolayout:protolayout-*:1.2.0-alpha05 is released. Version 1.2.0-alpha05 contains these commits.
New Features
- Add
hasTextmethod toMaterial.CompactChipto check whether the text content has been set. (I6e8fc)
API Changes
FontFamilyconst are moved to be inFontStyleinstead of its Builder class. (I06ced)- Update
FontSetting.weightandFontSetting.widthAPI to include Range annotations and change weight's parameter to be int. (Ia726c)
Bug Fixes
- Non-scalable texts in Material library now work correctly with Android 14's non-linear font scaling. (I6601e)
Version 1.2.0-alpha04
May 29, 2024
androidx.wear.protolayout:protolayout-*:1.2.0-alpha04 is released. Version 1.2.0-alpha04 contains these commits.
API Changes
- Added asymmetrical corners API to be able to specify separately each corner’s radius with 2 values. (Icbd69)
- Extended the
FontSettingAPI to include: - Added font family API to
FontStyleto allow specifying an order list of which font families should be used. (Iba9f5) - Renamed constants for space height between content and secondary label in Material’s
LayoutDefaultsthat were initially prefixed with “Edge content” to be more generic as they can be applied to bothPrimaryLayoutandEdgeContentLayout. (I4dc32)
Bug Fixes
- Renamed naming for variable font axes from
axisNametoaxisTag. (I02ba3)
Version 1.2.0-alpha03
May 14, 2024
androidx.wear.protolayout:protolayout-*:1.2.0-alpha03 is released. Version 1.2.0-alpha03 contains these commits.
New Features
- Added API for setting custom weight values for
FontStyle. (I7390a)
Bug Fixes
- Fix the failure in
getTouchDelegateInfodue to empty target map. (I2accf)
Version 1.2.0-alpha02
May 1, 2024
androidx.wear.protolayout:protolayout-*:1.2.0-alpha02 is released. Version 1.2.0-alpha02 contains these commits.
API Changes
- We've added support for disabling ripple feedback on individual clickable elements. (If1ede)
- The API for transformation has been removed from
ArcModifiersas they don't support that feature (Ic0827) ArcDirectionPropBuilder now expects a value in the constructor. (I76ada)- The
PlatformDataValues.Builder.putAllmethod will allow merging onePlatformDataValueinto another one. (I50ba3) Text#setIsScalableis renamed toText#setScalable. (If920e)- Material Text can set whether to use scalable size (grows when user font size is changed) or not. (Ibc849)
- We've added the option to set content description to
TitleChip. (I5d21f) - Fixed
CompactChipto work correctly with icon only and update the API to allow this option. (I6589e)
Bug Fixes
- Fixed an issue of potential duplicate platform data during initialization. (Iba0fd)
- Introduce a new getter to
DynamicDataNodeto retrieve node cost. The cost is used when acquiring dynamic node quota. Currently, Nodes with fixed values will have a cost of 0, all the other nodes will have a cost of 1. (Ia33e1) - Remove counting logic from the
NO_OP_QUOTA_MANAGER. (Ib50b8) - We have added a lint rule to report a warning when
PrimaryLayoutis used withoutsetResponsiveContentInsetEnabledand provide a quick fix. (I12025) - There is a limit to a number of dynamic expression nodes. (Iffae8)
Version 1.2.0-alpha01
March 6, 2024
androidx.wear.protolayout:protolayout-*:1.2.0-alpha01 is released. Version 1.2.0-alpha01 contains these commits.
New Features
ProtoLayout Arcelements now have the option to addArcDirection(Clockwise,CounterclockwiseorNormal) to it. Adding this behavior toArc,ArcLineorArcTextwill fix their behavior on RTL layouts. (I90699)EdgeContentLayouthas been updated with a newsetResponsiveContentInsetEnabledsetter to achieve better alignment with the UX guidelines, consistency in Tiles by having primary label at the fixed place on top and responsive inset for labels. (I60175)- We have added
PrimaryLayout.setResponsiveContentInsetEnabledthat adds responsive inset to the primary label, secondary label and bottom chip in this layout, to avoid that content going off the screen edge. (I0c457) - Adds method to remove outer margins from
CircularProgressIndicatorso it can be used as a smaller component. (I55c06)
API Changes
- Tiles renderer now excludes font padding on all text elements by default, without an option to include it. (I3e300)
Bug Fixes
- Fixed Text alignment issue when ellipsize, letter spacing and center align are all used on Text. (I716c7)
- Add a workaround for a skia arc drawing issue. (I08f09)
- Fix
ArcLinedrawing direction for RTL layouts. (I6c141)
Version 1.1
Version 1.1.0
February 7, 2024
androidx.wear.protolayout:protolayout-*:1.1.0 is released. Version 1.1.0 contains these commits.
Important changes since 1.0.0
- Gradient support and better representation of lengths larger than 360 degrees in
ArcLine. - Date-time formatting supports different time zones for dynamic data types.
- Better text autosizing and ellipsizing options, to handle truncated text.
- Spacer supports expanded dimensions with optional weight.
- Schema version requirement annotation to all
ProtoLayoutAPIs. - Extended target area to any
Clickableelement to 48 dp x 48 dp, to satisfy accessibility requirements. - Font padding is turned off by default and is the only behavior across all Text elements and Material components that contain text.
Additional changes
- For a more complete set of the changes introduced in version 1.1.0, see the beta01 release notes.
Version 1.1.0-rc01
January 24, 2024
androidx.wear.protolayout:protolayout-*:1.1.0-rc01 is released. Version 1.1.0-rc01 contains these commits.
Bug Fixes
PlatformTimeUpdateNotifierImplticks immediately after enabling update. (I77145)CircularProgressIndicatorhas been fixed for RTL layouts. From now on, it will go clockwise in all cases. (I95ee3)- Add a workaround for a skia arc drawing issue. (I08f09)
Version 1.1.0-beta01
January 10, 2024
androidx.wear.protolayout:protolayout-*:1.1.0-beta01 is released. Version 1.1.0-beta01 contains these commits.
New Features
The 1.1.0-beta01 release of Wear ProtoLayout indicates that this release of the library is feature complete and the API is locked (except where marked as experimental). Wear ProtoLayout 1.1 includes the following new functionalities and APIs:
ArcLinenow supports gradient by addingBrushwithSweepGradientand having a shadow on the cap to better represent length larger than 360 degrees by addingShadowon the existingStrokeCap.DynamicInstanthas support for zoned date-time formatting.DynamicInstantandDynamicDurationcan be used as state or platform data types.- Autosizing feature for text size that allows setting multiple sizes to
FontStyle.setSizeswhere the Text size will automatically scale based on the space it has inside of the parent. Additionally, we improved ellipsizing options for text that overflows by addingTEXT_OVERFLOW_ELLIPSIZEand deprecatingTEXT_OVERFLOW_ELLIPSIZE_END. Spacernow supports having expanded dimensions with optional weight. For buildingExpandedDimensionPropwe have added a helper methodDimensionBuilders.weight.- Support for dynamically hiding and unhiding layout elements with
Modifier.visible. This includes having dynamic values inBoolProp. - All
ProtoLayoutAPIs now have schema version requirement annotation and version can be checked before calling a newer API. - Every element that has
Clickablenow has its target area extended to at least 48x48 in the renderer to better support accessibility requirements. - Following other Material components and Compose initiatives, we have now turned off font padding by default on all
Textelements. Additionally,AndroidTextStyleand related setters have been removed from the public API. with following bug fixes: - Added a setter for positioning the edge content in
EdgeContentLayoutso it can be positioned before other content. - Consistently throwing an exception when encountering an unrecognized enum value.
- Invalidate the result of an expression when it yields an invalid numeric value (NaN or infinite) or throws an
ArithmeticException.
API Changes
- Updates to
SweepGradientAPI to allow accepting either colors orColorStopsin the constructor. (I6676f)
Bug Fixes
- Adding a restricted API and renderer support for setting a direction in which arc elements are drawn. (Idef5a)
RoundModedefaults toFloorinFloatToInt32Nodewhen unspecified. The node will still throw an exception if the providedRoundModeis unrecognized. (I1b2d8)
Version 1.1.0-alpha04
December 13, 2023
androidx.wear.protolayout:protolayout-*:1.1.0-alpha04 is released. Version 1.1.0-alpha04 contains these commits.
New Features
VersionInfoclass not implements theComparableinterface. (I8d13c)- Renderer now supports
TEXT_OVERFLOW_ELLIPSIZEoption. (I7f085)
API Changes
- Text overflow option
TEXT_OVERFLOW_ELLIPSIZE_ENDis now deprecated. Please use the new APITEXT_OVERFLOW_ELLIPSIZEwith very similar behavior. (I822d8) - Following other Material components and Compose initiatives, we have now turned off font padding by default on all Text elements. Additionally,
AndroidTextStyleand related setters have been removed from the public API. (I79094, Ib0b03, I32959, Iaf7d5, Ifa298, I0a4ae, Ida9d3) Modifier.hiddenis replaced withModifier.visible(I56902)FontStyle#setSizesnow accepts int instead ofSpProparguments. (I02b37)
Bug Fixes
- Throw an exception when encountering an Undefined or Unrecognized enum value. (I9d2cf)
- Refactor
DynamicTypeBindingRequest. (I27b57) - Invalidate the result of an expression when it yields an invalid numeric value (NaN or infinite) or throws an
ArithmeticException. (I681ae)
Version 1.1.0-alpha03
November 29, 2023
androidx.wear.protolayout:protolayout-*:1.1.0-alpha03 is released. Version 1.1.0-alpha03 contains these commits.
New Features
- Add experimental support for dynamically hiding/unhiding layout elements (I64a78)
- Add dynamic value support to
BoolProp(I2fe96) - Add schema version requirement annotation to
ProtoLayoutAPIs (I0f03c) - Extending the API with the new option in
TextOverflowfor ellipsizing the Text in a fixed parent container even when max lines is not reached (but there's not enough space for Text). (I110a9) - Added helper method
DimensionBuilders.weightfor buildingExpandedDimensionPropwith weight. (I4f72b) DynamicInstantandDynamicDurationcan be used as state or platform data types. (I6819f)
API Changes
- Update The API to hide
DynamicZonedDateTimeand move all its operations toDyanamicInstant(I34b94) - Spacer now supports Expanded dimension for width/height. (Ie7c94)
- Support click target area extension in Renderer (I39c79)
Version 1.1.0-alpha02
November 15, 2023
androidx.wear.protolayout:protolayout-*:1.1.0-alpha02 is released. Version 1.1.0-alpha02 contains these commits.
New Features
- Added an
ArcLineStrokeCapShadowfield to the API. (I830ec) - Extending the API to be able to specify Spacer's width or height to expand. (I757ca)
- We have added an experimental API to automatically scale the text size based on the space it has inside of the parent. (Ibbe63)
- Support minimum clickable size (I178e3)
- Added renderer support for
StrokeCapShadow. (I48b17) - Add renderer support for Sweep Gradient in
ArcLine. (I4d5bb)
Version 1.1.0-alpha01
October 18, 2023
androidx.wear.protolayout:protolayout-*:1.1.0-alpha01 is released. Version 1.1.0-alpha01 contains these commits.
New Features
- Added a brush option to
Arcline, with support forSweepGradient. (Ie7ce3) - Added support for zoned date-time formatting. (Ibfae0)
- Added protos and java Wrappers required for zoned date-time formatting. (I97126)
- Added getters for reading back the value stored in a
DynamicDataValue. (Ie6cea) - Added a setter for positioning the edge content in
EdgeContentLayoutso it can be positioned before other content. (Ie8e8a)
Bug Fixes
- Fixed an issue when an expression with multiple time data source registrations was not being updated immediately. (I8e1a8)
- Fixed a bug to center root element during diff updates. (Ie48f7)
- Unset (or empty) layout constraint values will not be ignored anymore. (Ibc785)
- Reduced delay between a layout becoming visible and its pipeline nodes being initialized. (I38d4e)
Version 1.0
Version 1.0.0
August 9, 2023
androidx.wear.protolayout:protolayout-*:1.0.0 is released. Version 1.0.0 contains these commits.
Major features of 1.0.0
ProtoLayout library introduces APIs for creating layouts and expressions that can be used across different Wear OS surfaces. For example Tiles library uses these APIs to support platform data binding (for faster tile data updates) and animations.
Version 1.0.0-rc01
July 26, 2023
androidx.wear.protolayout:protolayout-*:1.0.0-rc01 is released. Version 1.0.0-rc01 contains these commits.
- To migrate from Tiles to
ProtoLayout, please follow the instructions here.
API Changes
- We have removed
setLayoutConstraintForDynamicAnchorAngleandgetLayoutConstraintForDynamicAnchorAnglemethods from Arc element. These methods have been added by mistake and they didn't have any effect on the provided layout. (If7d01) - We have limited the maximum depth that a
ProtoLayout’s layout can have to 30 nestedLayoutElements. (I8a74b)
Bug Fixes
- We have added a check to throw if
DynamicColorhas been set for aSpanText. (I0e5bc) - It is clarified that
DAILY_CALORIESdata source unit is kcal. (Iaa785)
Version 1.0.0-beta01
June 21, 2023
androidx.wear.protolayout:protolayout-*:1.0.0-beta01 is released. Version 1.0.0-beta01 contains these commits.
New Features
- Allow setting clock for time binding tests. (I05622)
API Changes
PlatformDataReceiver.onData()andStateBuilders.Builder.addKeyToValueMappingnow accept type-safe mapping ofDynamicDataKeytoDynamicDataValuerather than unsafe generics. That means thatDynamicDataValueis now typed with itsDynamicType.HEART_RATE_ACCURACY_Xconstants moved to the root ofPlatformHealthSources, to match other Android constants positioning.HEART_RATE_ACCURACY_Xint constants are now used directly inDynamicHeartRateAccuracy.constant()andDynamicHeartRateAccuracy.dynamicDataValueOf()instead of value constant. (I82ff5)- The
PlatformHealthSources.Constantsclass was instantiable by mistake. This has been fixed now. (Icb849) PlatformTimeUpdateNotifier#setReceivernow receivesRunnableinstead ofSupplierfunction andExecutorto notify on. (I9d938)- We have changed the parameter type in the
PlatformTimeUpdateNotifier#setReceiverfromCallabletoSupplier. (I664bf) CompactChipandTitleChipnow support adding an icon to it. (I5a01e)
Bug Fixes
- Update Prop messages with dynamic fields to use oneof instead (I81739)
- Reuse setters implementation for overloads that have setters (Ied70c)
- Properly record fingerprints in setters that have overloads (I86ed2)
Version 1.0.0-alpha11
June 7, 2023
androidx.wear.protolayout:protolayout-*:1.0.0-alpha11 is released. Version 1.0.0-alpha11 contains these commits.
New Features
- We've added a
PlatformDataKeyfor heart rate accuracy. (I7f9b8)
API Changes
- Rename
StateBuilders#getIdToValueMappingtogetKeyToValueMappingand change the return type toMap<<AppDataKey<?>,DynamicDataValue>. (Iaa7ae) - Make
StateStorea final class (I408ca) TimeGatewayinterface has been replaced byPlatformTimeUpdateNotifierinprotolayout-expression-pipelinelibrary which provides desired frequency for updating time data. (I60869)- Rename
register/unregisterForDatainPlatformDataProvidertoset/clearReceiver(I14b02) - In Material Text,
getExcludeFontPaddinghas been renamed tohasExcludeFontPadding. (Iea01d) - Setter for perfectly aligning label was added to all chip components. All chips now have min tappable target applied. (I8ae92)
LayoutDefaults#BUTTON_MAX_NUMBERhas been renamed toMAX_BUTTONS. (I84788)DAILY_DISTANCEis renamed toDAILY_DISTANCE_M. (I4f758)
Bug Fixes
- Update Prop types docs to clarify why static value is enforced. Specify the default value used if static value wasn't provided. (I155aa)
PlatformDataKeynamespaces should follow Java style naming. (I47bda)
Version 1.0.0-alpha10
May 24, 2023
androidx.wear.protolayout:protolayout-*:1.0.0-alpha10 is released. Version 1.0.0-alpha10 contains these commits.
New Features
- Add
AppDataKeyfor accessing app pushed state; AddPlatformDataKeyfor accessing platform data; Add namespace support inStateStore. (I7985e) - Support
EqualandNotEqualoperations forDynamicBool. (I6a0c1)
API Changes
FontStylesclass is now final (Iaa2ea)LayoutElementBuilders#FontStyleshas been deprecated. Please useandroidx.wear.protolayout.Typographyor create your ownFontStyle. (Ic929b)- Hide
Action#Buildernested interface fromActioninterface. Implementations of Builder are already provided byLoadActionandLaunchActionclasses. (I1d70c) - Allow using
DynamicFloatwithFloatProp. Note thatFloatPropdo no require layout constraints as it's not used as a layout changing prop. (I286ac) - The
LoalActionandSetStateActionactions are removed as they were not really supported yet. (I5d6a6) - Added support for ARGB_8888 format for inline image resources. (I8a07c)
- Rename
StateEntryValuetoDynamicDataValue, and update the state APIS to use theDynamicDataKey(If1c01) - We are limiting the number of entries that are allowed in the
StateStorein order to ensure that memory usage and state update time are well contained and controlled for each instance of theStateStore. As a result, the developer needs to ensure that they do not have more thanMAX_STATE_ENTRY_COUNTentries in the map otherwise they will get anIllegalStateExceptionwhen creating or updating theStateStore. (Ibadb3) - Hide
OnLoadTriggerandOnConditionMetTriggerclasses, and renamesetTriggertosetConditionforOnConditionMetTrigger. (Ibf629) - For performance and compatibility reasons, the
ProtoLayoutrenderers won't support the full set of features inAnimatedVectorDrawableresources. We're marking those APIs as experimental until we can define the supported set. (Ic6daf) - Added dynamic types for daily distance, daily calories and daily floors. Keys for platform health sources are now under
PlatformHealthSources.Keys(Ib7637) - The
Easing.cubicBeziermethod replaces theCubicBezierEasing.Builder. With that theEasingFunctionclass is removed and the easing constants from that class are now directly accessible from theEasinginterface. In additionsetInfiniteRepeatableis replaced byINFINITE_REPEATABLE_WITH_RESTARTandINFINITE_REPEATABLE_WITH_REVERSE(Ib41e7) - Implement
PlatformDataProviderto provide heart rate and daily steps.SensorGatewayinterface is removed from public API. (I55b84) - Add
PlatformDataProvider, and updateStateStoreto register toPlatformDataProviderwhen the provider's supported key is required by node from expression pipeline. (Ib616a) SensorGatewayis no longerCloseableas it no longer maintains any state. (I6b4f7)- Allow using
FloatPropwithDynamicFloatfor progress inCircularProgressIndicator. This is supported for renderers supporting version 1.2. Old renderers will fallback to thestaticValueif provided, otherwise to 0 (I0d91b) MultiButtonLayoutconstants have been refactored intoLayoutDefaults.MultiButtonLayoutDefaultsclass which now contains those for button sizes depending on a number of buttons in the layout. (I13973)- Support using
StringPropwithDynamicStringin Material Text. This is supported for renderers supporting version 1.2. Old renderers will fallback to the provided static value. UpdateText#getTextreturn type fromStringtoStringProp. (I7275b)
Version 1.0.0-alpha09
May 10, 2023
androidx.wear.protolayout:protolayout-*:1.0.0-alpha09 is released. Version 1.0.0-alpha09 contains these commits.
New Features
- We've added an experimental extension layout element. Note that this can't be used by default and requires a renderer extension capable of understanding the layout element. (I6581d)
- Added
StrokeCapsupport forArcLine. (I94951) - Added support for Conditional Instant operation. (I489a7)
- Added support for Conditional Duration operation. (Iab469)
- Added support for creating duration from seconds. (Ib5fa1)
API Changes
enable/disablePlatformSourcemethods have been removed fromDynamicTypeEvaluator. The caller should be responsible for updates. (I78c6d)- Allow capping the size of bound data types. (Ie2966)
- Add support for dynamic content description in
protolayout-material. (I62c8e) - Use long and
@IntRangefor duration and delay in AnimationParameters. (I388b6)
Version 1.0.0-alpha08
April 19, 2023
androidx.wear.protolayout:protolayout-*:1.0.0-alpha08 is released. Version 1.0.0-alpha08 contains these commits.
New Features
AndroidTextStylehas been added toLayoutElementBuilders. (I8d967)- We have added support for setting excluding font padding in
ProtoLayoutMaterial Text. (I17f5d) - ARGB_8888 is now supported for inline images. (I18c1e)
DynamicColornow supportsonConditionoperation. (I10927)
API Changes
- Support custom duration for reverse animation (I3251f)
- We've added the
SemanticDescriptionmodifier. In addition,ContentDescriptionis not bindable. (I3f1d) - The
DynamicBool.isFalse()method is now replaced withDynamicBool.negate()and theDynamicBool.isTrue()is removed. In addition NaNDynamicFloatvalues and narrowing aDynamicInt32to aDynamicFloatnow emit an invalid dynamic result. (I6ac1e) - Int and float formatters now use the Builder pattern. (Ieb213)
Bug Fixes
- Fallback static value has been removed from animatable fields. (Ifcb01)
DynamicTypeValueReceiver#onPreUpdatehas been removed. (I2dc35)- Length of Strings in dynamic expressions are now capped. (I4c93)
- The gradle dependencies are now correctly set to
apiinstead ofimplementationwhen required. (I40503)
Version 1.0.0-alpha07
April 5, 2023
androidx.wear.protolayout:protolayout-*:1.0.0-alpha07 is released. Version 1.0.0-alpha07 contains these commits.
New Features
API Changes
sensorGateway#registerSensorGatewayConsumertakes data type as a parameter instead of method in Consumer. (Icf314)ObservableStateStorehas been renamed toStateStore. (Ieb0e2)- Added
DynamicTypeEvaluator.Builderinstead of constructor arguments to allow more optional arguments, includingObservableStateStorewhich now defaults to an empty store. (I6f832) - Refactored order of parameters in
DynamicTypeEvaluator. (Ic1ba4)
Bug Fixes
- Correctly propagate signals from platform sensor sources to downstream nodes (I5a922)
Version 1.0.0-alpha06
March 22, 2023
androidx.wear.protolayout:protolayout-*:1.0.0-alpha06 is released. Version 1.0.0-alpha06 contains these commits.
New Features
- We've added an experimental API for using heart rate and daily steps in dynamic expressions (Ifd711)
- We have added support for reverse and forward delay for animations. (Ic25f7)
- We've added
DynamicColorsupport to Border and Background - We've added dynamic value support to types in
DimensionBuilder - Layout and components from
tiles-materialare moving toprotolayout-material
API Changes
LoadActionListenerhas been added toProtoLayoutViewInstance. (If7806)
Bug Fixes
- Added
FloatNodesTest(Id7281) - Fix renderer crash when unable to load structured bitmap.
Version 1.0.0-alpha05
March 8, 2023
androidx.wear.protolayout:protolayout-*:1.0.0-alpha05 is released. Version 1.0.0-alpha05 contains these commits.
New Features
- We've added an experimental "content update" animation to the
Modifiersobject. This animation will trigger whenever the element (with this modifier) or one of its children changes during a layout update. (bd03e5d)
API Changes
- We've added
forwardRepeatDelayMillisandreverseRepeatDelayMillistoRepeatable. We've also renameddelayMillisinAnimationSpectostartDelayMillis(Ifb266) DynamicTypeEvaluator.bindmethods now accept an Executor. (I346ab)- We've added the
startEvaluationmethod to theBoundDynamicTypeto trigger the evaluation after the dynamic type is bound. (I19908)
Bug Fixes
- The Animator object will be reused for subsequent animations of a single element. (Ia3be9)
Version 1.0.0-alpha04
February 22, 2023
androidx.wear.protolayout:protolayout-*:1.0.0-alpha04 is released. Version 1.0.0-alpha04 contains these commits.
New Features
ObservableStateStorenow informs the listeners when a key is removed too.- We've added renderer schema version and font scale to
DeviceParameters(which can be used to conditionally create layouts in response to different versions and font settings). - We've added support for animating
DynamicInt32values (I05485) - We've added
OnLoadandOnConditionalMettriggers. These can be used to start animations that support a trigger. - We've added layout weight for expanded dimensions and min size for wrapped dimensions.
- We've added duration and instant dynamic types. These can be used to represent a time instant or duration in a dynamic expression.
- We've added support for
AnimatedVectorDrawableandSeekableAnimatedVectorDrawableas layout resources.
API Changes
- Sensor data requires API 29+. (I8099e)
- We've added two
launchActionhelper methods (for launching Activities).
Bug Fixes
- Rename
set/getSpectoset/getAnimationSpecin Tiles animation (I3d74b)
Version 1.0.0-alpha03
February 8, 2023
androidx.wear.protolayout:protolayout-*:1.0.0-alpha03 is released. Version 1.0.0-alpha03 contains these commits.
New Features
- We have added
toByteArray()andfromByteArray()to Dynamic types in protolayout-express library. - We have added
toString()to Dynamic types in protolayout-expression library. - We have added evaluation support for Dynamic types. The
DynamicTypeEvaluatorclass from the protolayout-expression-pipeline library can be used to evaluate (and receive updated values) for a previously create Dynamic type (DynamicString,DynamicFloat, …) - When animations can't be played (either because they are disabled by the evaluator, or the number of running animations has reached the set limit), the static values set on the animatable node will be used to replace the animation.
Version 1.0.0-alpha02
January 25, 2023
androidx.wear.protolayout:protolayout:1.0.0-alpha02, androidx.wear.protolayout:protolayout-expression:1.0.0-alpha02, and androidx.wear.protolayout:protolayout-proto:1.0.0-alpha02 are released. Version 1.0.0-alpha02 contains these commits.
New Features
- Layout builders from
androidx.wear.tiles:tilesare moving toandroidx.wear.protolayout:protolayout. The ones inandroidx.wear.tiles:tileswill be deprecated in one of the next alpha releases.
Version 1.0.0-alpha01
January 11, 2023
androidx.wear.protolayout:protolayout-expression:1.0.0-alpha01 and androidx.wear.protolayout:protolayout-proto:1.0.0-alpha01 are released. Version 1.0.0-alpha01 contains these commits.
New Features
- This release introduces a new library "ProtoLayout Expression" for creating expressions from dynamic variables.