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 within- MaterialScopeis now made- NonNullfor easier usage when- MaterialScopeis created via- materialScopeWithResources. In addition, there is a- hasProtoLayoutScopefunction 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 for- Imageand- ImageResourcesfor usage with- ProtoLayoutScopeand 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)
- ProtoLayoutMaterial3- MaterialScopenow exposes- Contextfield 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 has- hashCodeand- equalsmethods. (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 customization
- iconEdgeButton,- textEdgeButton
- iconButton,- textButton,- button,- imageButton,- avatarButton,- compactButton
- titleCard,- appCard,- graphicDataCard,- iconDataCard,- textDataCard
- circularProgressIndicator,- segmentedCircularProgressIndicator
- primaryLayout,- 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(including- clearSemantics),- background,- clip,- opacityetc.), convertible to the existing- Modifiersobject
- LayoutColorsand- LayoutStringas types with easier support for using dynamic fields and constraints
- textand- fontStyle
- 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,- ArcLineand- DashedArcLinebuilders won’t throw if- layoutConstraintsfor dynamic values are not set. Note that older renderers still require the- layoutConstraintsto 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 customization
- iconEdgeButton,- textEdgeButton
- iconButton,- textButton,- button,- imageButton,- avatarButton,- compactButton
- titleCard,- appCard,- graphicDataCard,- iconDataCard,- textDataCard
- circularProgressIndicator,- segmentedCircularProgressIndicator
- primaryLayout,- 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(including- clearSemantics),- background,- clip,- opacityetc.), convertible to the existing- Modifiersobject
- LayoutColorsand- LayoutStringas types with easier support for using dynamic fields and constraints
- textand- fontStyle
- 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 add- FontSetting.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,- CardColorsand- ProgressIndicatorColorsnow 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 a- hasValueOfType(Class<?>)method in addition to- hasInt/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 to- addToStateMapand- DynamicDataMap.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 called- foldRightto 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 in- FontStyleinstead 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 to- Text#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 add- ArcDirection(- Clockwise,- Counterclockwiseor- Normal) to it. Adding this behavior to- Arc,- ArcLineor- ArcTextwill fix their behavior on RTL layouts. (I90699)
- EdgeContentLayouthas been updated with a new- setResponsiveContentInsetEnabledsetter 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 adding- Brushwith- SweepGradientand having a shadow on the cap to better represent length larger than 360 degrees by adding- Shadowon the existing- StrokeCap.
- DynamicInstanthas support for zoned date-time formatting.- DynamicInstantand- DynamicDurationcan 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 building- ExpandedDimensionPropwe have added a helper method- DimensionBuilders.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 to- Floorin- FloatToInt32Nodewhen unspecified. The node will still throw an exception if the provided- RoundModeis 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 the- Comparableinterface. (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 with- Modifier.visible(I56902)
- FontStyle#setSizesnow accepts int instead of- SpProparguments. (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)
- DynamicInstantand- DynamicDurationcan 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()and- StateBuilders.Builder.addKeyToValueMappingnow accept type-safe mapping of- DynamicDataKeyto- DynamicDataValuerather than unsafe generics. That means that- DynamicDataValueis now typed with its- DynamicType.- HEART_RATE_ACCURACY_Xconstants moved to the root of- PlatformHealthSources, to match other Android constants positioning.- HEART_RATE_ACCURACY_Xint constants are now used directly in- DynamicHeartRateAccuracy.constant()and- DynamicHeartRateAccuracy.dynamicDataValueOf()instead of value constant. (I82ff5)
- The PlatformHealthSources.Constantsclass was instantiable by mistake. This has been fixed now. (Icb849)
- PlatformTimeUpdateNotifier#setReceivernow receives- Runnableinstead of- Supplierfunction and- Executorto notify on. (I9d938)
- We have changed the parameter type in the PlatformTimeUpdateNotifier#setReceiverfromCallabletoSupplier. (I664bf)
- CompactChipand- TitleChipnow 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 by- PlatformTimeUpdateNotifierin- protolayout-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 to- MAX_BUTTONS. (I84788)
- DAILY_DISTANCEis renamed to- DAILY_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 use- androidx.wear.protolayout.Typographyor create your own- FontStyle. (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 longer- Closeableas 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 into- LayoutDefaults.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 from- DynamicTypeEvaluator. 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 to- LayoutElementBuilders. (I8d967)
- We have added support for setting excluding font padding in ProtoLayoutMaterial Text. (I17f5d)
- ARGB_8888 is now supported for inline images. (I18c1e)
- DynamicColornow supports- onConditionoperation. (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 to- StateStore. (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 to- ProtoLayoutViewInstance. (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.
