Wear Tiles

Create applications for Wear OS by Google smartwatches.
Latest Update Stable Release Release Candidate Beta Release Alpha Release
December 11, 2024 1.4.1 - - 1.5.0-alpha05

Declaring dependencies

To add a dependency on Wear, 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 tiles
    implementation "androidx.wear.tiles:tiles:1.5.0-alpha05"

    // Use to utilize standard components and layouts in your tiles
    implementation "androidx.wear.protolayout:protolayout:1.3.0-alpha05"

    // Use to utilize components and layouts with Material Design in your tiles
    implementation "androidx.wear.protolayout:protolayout-material:1.3.0-alpha05"

    // Use to include dynamic expressions in your tiles
    implementation "androidx.wear.protolayout:protolayout-expression:1.3.0-alpha05"

    // Use to preview wear tiles in your own app
    debugImplementation "androidx.wear.tiles:tiles-renderer:1.5.0-alpha05"

    // Use to fetch tiles from a tile provider in your tests
    testImplementation "androidx.wear.tiles:tiles-testing:1.5.0-alpha05"
}

Kotlin

dependencies {
    // Use to implement support for wear tiles
    implementation("androidx.wear.tiles:tiles:1.5.0-alpha05")

    // Use to utilize standard components and layouts in your tiles
    implementation("androidx.wear.protolayout:protolayout:1.3.0-alpha05")

    // Use to utilize components and layouts with Material Design in your tiles
    implementation("androidx.wear.protolayout:protolayout-material:1.3.0-alpha05")

    // Use to include dynamic expressions in your tiles
    implementation("androidx.wear.protolayout:protolayout-expression:1.3.0-alpha05")

    // Use to preview wear tiles in your own app
    debugImplementation("androidx.wear.tiles:tiles-renderer:1.5.0-alpha05")

    // Use to fetch tiles from a tile provider in your tests
    testImplementation("androidx.wear.tiles:tiles-testing:1.5.0-alpha05")
}

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.

Create a new issue

See the Issue Tracker documentation for more information.

Version 1.5

Version 1.5.0-alpha05

December 11, 2024

androidx.wear.tiles:tiles-*:1.5.0-alpha05 is released. Version 1.5.0-alpha05 contains these commits.

New Features

  • Add api for TileService to process interaction events in batches. (I04d1b)

Bug Fixes

  • This library now uses JSpecify nullness annotations, which are type-use. Kotlin developers should use the following compiler arguments to enforce correct usage: -Xjspecify-annotations=strict, -Xtype-enhancement-improvements-strict-mode (I390e9, b/326456246)
  • Fixed the bug where requesting tile updates on API 34 when the app targetSdk is higher than 34 would cause a SecurityException (If62a1)
  • Fixed a dependency to WearSdk in Robolectric tests. (I37796)

Version 1.5.0-alpha04

November 13, 2024

androidx.wear.tiles:tiles-*:1.5.0-alpha04 is released. Version 1.5.0-alpha04 contains these commits.

Version 1.5.0-alpha03

October 30, 2024

androidx.wear.tiles:tiles-*:1.5.0-alpha03 is released. Version 1.5.0-alpha03 contains these commits.

Version 1.5.0-alpha02

October 16, 2024

androidx.wear.tiles:tiles-*:1.5.0-alpha02 is released. Version 1.5.0-alpha02 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.5.0-alpha01 of androidx.wear.tiles:tiles-proto to 1.5.0-alpha02 to address the vulnerability risk.

Version 1.5.0-alpha01

October 2, 2024

androidx.wear.tiles:tiles-*:1.5.0-alpha01 is released. Version 1.5.0-alpha01 contains these commits.

Version 1.4

Version 1.4.1

October 16, 2024

androidx.wear.tiles:tiles-*:1.4.1 is released. Version 1.4.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.4.0 of androidx.wear.tiles:tiles-proto to 1.4.1 to address the vulnerability risk.

Version 1.4.0

August 7, 2024

androidx.wear.tiles:tiles-*:1.4.0 is released. Version 1.4.0 contains these commits.

Important changes since 1.3.0

  • Tooling support for specifying custom platform data for Tiles previews in Android Studio.

Version 1.4.0-rc01

July 24, 2024

androidx.wear.tiles:tiles-*:1.4.0-rc01 is released with no changes from the previous release. Version 1.4.0-rc01 contains these commits.

Version 1.4.0-beta01

July 10, 2024

androidx.wear.tiles:tiles-*:1.4.0-beta01 is released. Version 1.4.0-beta01 contains these commits.

New Features

The 1.4.0-beta01 release of Wear Tiles indicates that this release of the library is feature complete and the API is locked (except where marked as experimental). Wear Tiles 1.4 includes the following new functionalities and APIs:

  • Tooling support for specifying custom platform data for Tiles previews in Android Studio.

Version 1.4.0-alpha05

June 26, 2024

androidx.wear.tiles:tiles-*:1.4.0-alpha05 is released. Version 1.4.0-alpha05 contains these commits.

Version 1.4.0-alpha04

May 29, 2024

androidx.wear.tiles:tiles-*:1.4.0-alpha04 is released. Version 1.4.0-alpha04 contains these commits.

Version 1.4.0-alpha03

May 14, 2024

androidx.wear.tiles:tiles-*:1.4.0-alpha03 is released. Version 1.4.0-alpha03 contains these commits.

Bug Fixes

  • TileService#getActiveTilesAsync now uses WearSdk API (when available) to provide a more accurate result. (I57bd8)

Version 1.4.0-alpha02

May 1, 2024

androidx.wear.tiles:tiles-*:1.4.0-alpha02 is released. Version 1.4.0-alpha02 contains these commits.

API Changes

  • Move tileId to Builder constructor param as a mandatory field and document default timestamp value in the getter. (I98c2b)
  • Add TileInteractionEvent, TileEnter, and TileLeave proto messages and Java Wrappers needed for batching tile enter/leave events. (I112b0)
  • Refactor TileRenderer to use a Builder instead of a TileRenderer.Config object. (Ib66f9)
  • Add a platformDataProviders attribute to TileRenderer.Config. (I6030d)
  • Add a new constructor to TileRenderer that supports a new TileRenderer.Config class. Other constructors are deprecated. (Iae7ff)
  • Add a platformDataValues field to TilePreviewData to allow overriding platform data values. (If437a)

Bug Fixes

  • Document that the default value for TileRenderer.Config.Builder#setTilesTheme is zero. (Iced18)

Version 1.4.0-alpha01

March 6, 2024

androidx.wear.tiles:tiles-*:1.4.0-alpha01 is released. Version 1.4.0-alpha01 contains these commits.

Version 1.3

Version 1.3.0

February 7, 2024

androidx.wear.tiles:tiles-*:1.3.0 is released. Version 1.3.0 contains these commits.

Important changes since 1.2.0

  • Updated tooling for tile preview support.
  • Support for querying active tiles belonging to the app.

Additional changes

Version 1.3.0-rc01

January 24, 2024

androidx.wear.tiles:tiles-*:1.3.0-rc01 is released. Version 1.3.0-rc01 contains these commits.

API Changes

  • Renamed TileService#getActiveTilesSnapshotAsync to getActiveTilesAsync. (If6b87)

Version 1.3.0-beta01

January 10, 2024

androidx.wear.tiles:tiles-*:1.3.0-beta01 is released. Version 1.3.0-beta01 contains these commits.

The 1.3.0-beta01 release of Wear Tiles indicates that this release of the library is feature complete and the API is locked (except where marked as experimental). Wear Tiles 1.3 includes the following new functionalities and APIs:

  • Module for wear tiles tooling is updated for tile preview support and is set for being published.
  • Support for querying which tiles belonging to the app are active with TileService.getActiveTilesSnapshotAsync.

Version 1.3.0-alpha04

December 13, 2023

androidx.wear.tiles:tiles-*:1.3.0-alpha04 is released. Version 1.3.0-alpha04 contains these commits.

Version 1.3.0-alpha03

November 29, 2023

androidx.wear.tiles:tiles-*:1.3.0-alpha03 is released. Version 1.3.0-alpha03 contains these commits.

New Features

  • Added a new API TileService#getActiveTilesSnapshotAsync for querying which tiles belonging to the app are active. (I6850e)

API Changes

  • Rename @TilePreview to @Preview (Ifc08a)

Version 1.3.0-alpha02

November 15, 2023

androidx.wear.tiles:tiles-*:1.3.0-alpha02 is released. Version 1.3.0-alpha02 contains these commits.

New Features

  • We have added an experimental API to automatically scale the text size based on the space it has inside of the parent. (Ibbe63)

Version 1.3.0-alpha01

October 18, 2023

androidx.wear.tiles:tiles-*:1.3.0-alpha01 is released. Version 1.3.0-alpha01 contains these commits.

New Features

  • Provide the context as a preview method parameter instead of TilePreviewData callback parameters. (I5e97d)
  • Module for wear tiles tooling is updated for tile preview support and is set for being published. (I63d0f)

Version 1.2

Version 1.2.0

August 9, 2023

androidx.wear.tiles:tiles-*:1.2.0 is released. Version 1.2.0 contains these commits.

Important changes since 1.1.0

  • Stable release of Wear Tiles 1.2.0 (read more)
  • Tiles 1.2 adds support for binding layout elements to platform data (for faster updates) and animation. For migration instructions see the release notes for (1.2.0-rc01)

Version 1.2.0-rc01

July 26, 2023

androidx.wear.tiles:tiles-*:1.2.0-rc01 is released. Version 1.2.0-rc01 contains these commits.

  • With the v1.2 release, Tiles library has been refactored and the majority of the features and APIs are moved into new ProtoLayout library (package androidx.wear.protolayout) with a small subset remaining in Tiles (androidx.wear.tiles):

    • All classes names have stayed the same, there are only additions to the v1.1
    • The majority of the APIs have stayed the same and the only change is package name.
    • Some of the methods in TileService/TileBuilder have been deprecated and now have renamed versions that accept new ProtoLayout types instead of deprecated Tiles one.
  • To make this migration easier, we have put together a small instructions and script that does this renaming, see here.

API Changes

  • We have limited the maximum depth that a layout can have to 30 nested elements in tile. If that depth is exceeded, the tile renderer will show a previously inflated layout. (I8a74b)

Version 1.2.0-beta01

June 21, 2023

androidx.wear.tiles:tiles-*:1.2.0-beta01 is released with no changes. Version 1.2.0-beta01 contains these commits.

Version 1.2.0-alpha07

June 7, 2023

androidx.wear.tiles:tiles-*:1.2.0-alpha07 is released. Version 1.2.0-alpha07 contains these commits.

New Features

  • TileRenderer.setState allows setting the state for the rendering session. This state will apply to the current layout and any future one (until a new state is set) (Iaaf35)
  • protolayout types are now fully supported across all tile-renderer APIS. (I428b0)

Bug Fixes

  • Setting a custom theme is now possible in the ProtoLayoutViewInstance. (Iae8c0)

Version 1.2.0-alpha06

May 24, 2023

androidx.wear.tiles:tiles-*:1.2.0-alpha06 is released. Version 1.2.0-alpha06 contains these commits.

API Changes

  • Rename StateEntryValue to DynamicDataValue, and update the state APIs to use the DynamicDataKey (If1c01)
  • We are limiting the number of entries that are allowed in the StateStore in order to ensure that memory usage and state update time are well contained and controlled for each instance of the StateStore. As a result, the developer needs to ensure that they do not have more than MAX_STATE_ENTRY_COUNT entries in the map otherwise they will get an IllegalStateException when creating or updating the StateStore. (Ibadb3)

Version 1.2.0-alpha05

May 10, 2023

androidx.wear.tiles:tiles-*:1.2.0-alpha05 is released. Version 1.2.0-alpha05 contains these commits.

New Features

  • We've added tile id to the tile events and requests. This id can be used to associate some data with a tile instance in the carousel. (Ic4f83)

API Changes

  • TileRenderer.inflateAsync now returns a ListenableFuture. (I2f2b9)
  • Tile builders which have a replacement in the protolayout library are now marked as deprecated. (Ie2029)

Bug Fixes

  • The javadoc for TileService.onTileResourcesRequest now clarifies when the method might be called by the system. (Iee037)

Version 1.2.0-alpha04

April 19, 2023

androidx.wear.tiles:tiles-*:1.2.0-alpha04 is released. Version 1.2.0-alpha04 contains these commits.

Bug Fixes

  • The gradle dependencies are now correctly set to api instead of implementation when required. (I40503)

Version 1.2.0-alpha03

April 5, 2023

androidx.wear.tiles:tiles-*:1.2.0-alpha03 is released. Version 1.2.0-alpha03 contains these commits.

API Changes

  • We've added support for androidx.wear.protolayout types to TileRenderer (I4ac7f)
  • ObservableStateStore has been renamed to StateStore. (Ieb0e2)
  • Add overloads for protolayout types to TileRenderer (I4ac7f)
  • Enable animations in TileRenderer (I07dcf)

Version 1.2.0-alpha02

March 22, 2023

androidx.wear.tiles:tiles-*:1.2.0-alpha02 is released. Version 1.2.0-alpha02 contains these commits.

API Changes

  • Tiles Material library has been deprecated. Please use the new ProtoLayout Material library with the same functionalities. (If242b)

Bug Fixes

  • TileRenderer has been updated to use new features from protolayout library. (I832f9)

Version 1.2.0-alpha01

March 8, 2023

androidx.wear.tiles:tiles-*:1.2.0-alpha01 is released. Version 1.2.0-alpha01 contains these commits.

New Features

  • We've added onTileResourceRequest to TileService, for providing resources from the protolayout library. (983d9c5)
  • We've updated ResourcesRequestand TileRequest to support State and DeviceParameters types from the protolayout library. (88fa01d)
  • We've updated TileBuilders.Tile to support State and Timeline types from the protolayout library. (168619c)

Bug Fixes

  • Improvements to Javadocs. (I3ed73)
  • Default colors for onPrimary and surface has changed. (I0b039)

Version 1.1

Version 1.1.0

August 24, 2022

androidx.wear.tiles:tiles-*:1.1.0 is released. Version 1.1.0 contains these commits.

Important changes since 1.0.0

  • This is the first stable release that contains the Tiles Material library (read more on our blog).
  • This library contains components and layouts that are in-line with Material guidelines and easy to use. The included components are Button, Chip, CompactChip, TitleChip, CircularProgressIndicator, Text.All these components have their own colors object that can be built with the main Colors class to easily apply the same theme over all components. In addition to colors, there is a Typography class to easily get FontStyle objects using the typography name.
  • Besides components, there are recommended tile layouts - PrimaryLayout, EdgeContentLayout, MultiButtonLayout, MultiSlotLayout. All layouts have recommended padding and styles applied that are within Material guidelines.
  • For a list of the components and layouts in Tiles Material library see the release notes for Tiles.

Version 1.1.0-rc01

August 10, 2022

androidx.wear.tiles:tiles-*:1.1.0-rc01 is released. Version 1.1.0-rc01 contains these commits.

  • There were no new changes between the Beta and RC release.

Version 1.1.0-beta01

July 27, 2022

androidx.wear.tiles:tiles-*:1.1.0-beta01 is released. Version 1.1.0-beta01 contains these commits.

The 1.0.0-beta01 release of Tiles Material library contains components and layouts that are in-line with Material guidelines and easy to build.

The included components are:

  • Button - clickable, circular-shaped object, with either icon, text or image with 3 predefined sizes.
  • Chip - clickable, stadium-shaped object that can contain an icon, primary and secondary labels, and has fixed height and customizable width.
  • CompactChip & TitleChip - two variations of the standard Chip that have smaller and larger heights, respectively, and can contain one line of text.
  • CircularProgressIndicator - colored arc around the edge of the screen with the given start and end angles, which can describe a full or partial circle with the full progress arc behind it.
  • Text - styled text which uses the recommended Wear Material typography styles

All these components have their own colors object that can be built with the main Colors class to easily apply the same theme over all components. In addition to colors, there is a Typography class to easily get FontStyle objects using the typography name.

In addition to components, there are recommended tiles layouts:

  • PrimaryLayout - A layout which can be customized by adding primary or secondary labels, content in the middle, and a primary chip at the bottom. The main content within this layout could be added as a MultiSlotLayout or MultiButtonLayout object.
  • EdgeContentLayout - A layout for hosting CircularProgressIndicator around the edge with main content inside and primary or secondary label around it.
  • MultiButtonLayout - A layout that can contain 1 - 7 buttons, arranged in line with the Material guidelines depending on their number.
  • MultiSlotLayout - A row-like style layout with horizontally aligned and spaced slots (for icons or other small content).

All layouts have recommended padding and styles applied that are within Material guidelines.

API Changes

  • Major refactor to the Chip components that includes separating setters in Builder so that each part of the content is passed in separately with renaming to match guidelines (primary label, secondary label, image resource id). Additionally, content description will be auto generated if not set. (I57622)
  • ProgressIndicatorLayout has been renamed to EdgeContentLayout. (Ic1aa6)
  • Button size contents have been renamed to names without _BUTTON suffix in it with additional Javadocs clarification across Button. (I1dfe2)

Bug Fixes

  • Margins, padding and overall arrangement in Material Layouts has been updated to accommodate all types of recommended layouts and screen sizes and shapes.
  • Improvements to Material Layouts. In MultiSlotLayout slots are now flexible in width where they’ll wrap content instead of being fixed size.(I52919),(If18b4)
  • Area that can be tapped on CompactChip has been increased to follow accessibility guidelines. (Ie8264)

Version 1.1.0-alpha09

June 29, 2022

androidx.wear.tiles:tiles-*:1.1.0-alpha09 is released. Version 1.1.0-alpha09 contains these commits.

New Features

  • We have added support for adding optional labels in ProgressIndicatorLayout. (I30788)

API Changes

  • Helper methods for ElementMetadata now accept ElementMetadata instead of Modifiers. (I5a70f)

Bug Fixes

  • The limitation of 9 characters on CompactChip was removed. If text is too big to fit into the screen in PrimaryLayout, it will be ellipsized. (Id56ec)
  • Getters in Chip now have Content suffix. (Iba437)
  • Javadoc clarification across Tiles Material classes. (I56e41), (I80f31), (Iba437)

Version 1.1.0-alpha08

June 1, 2022

androidx.wear.tiles:tiles-*:1.1.0-alpha08 is released. Version 1.1.0-alpha08 contains these commits.

New Features

  • Metadata tag has been added to Modifiers to be used to track component’s metadata with helper methods added to the Helper class. (I70db2),(I30c3d)
  • Static method fromLayoutElement has been added to all components and layouts inside of Tiles Material. It should be used for testing, to cast a LayoutElement obtained from accessing the contents of a container to its original type. (Ia572a),(Idbd8a),(I3ae13),(I292fe),(I8b20f),(I3cacb),(I84b24)

Version 1.1.0-alpha07

May 18, 2022

androidx.wear.tiles:tiles-*:1.1.0-alpha07 is released. Version 1.1.0-alpha07 contains these commits.

API Changes

  • Getters related to different setters for content have now been added to the ProgressIndicatorLayout and PrimaryLayout. Now all setters in these classes have matching getters.(Iddbe5) (Iabe4e)
  • Getter for content description in Material Components can return null since its setter is not mandatory.
  • Attempting to create a Button with no content passed in will result in IllegalArgumentException. (I7fc0c)
  • Icon color related fields in ChipColors have been renamed from iconTintColor to iconColor. (Ic053b)

Bug Fixes

  • Added androidTests for Layouts in Tiles Material. (I96404)

Version 1.1.0-alpha06

May 11, 2022

androidx.wear.tiles:tiles-*:1.1.0-alpha06 is released. Version 1.1.0-alpha06 contains these commits.

New Features

  • The new layout has been added to the Material Layouts sub library - MultiButtonLayout. It represents a layout that can contain between 1 and 7 buttons arranged in line with the Material guidelines. In most cases, this layout should be passed in as a content to the PrimaryLayout. (Ib727f)

API Changes

  • MultiSlotLayout has been refactored to have only slots in it. This layout should be passed as a content to the main PrimaryLayout. (I1870f)
  • Updated defined default colors for CircularProgressIndicator to be one value instead of primary and secondary. (I64a51)
  • Added getter for horizontal spacer in MultiSlotLayout. (I11e1e)

Bug Fixes

  • Android tests for Components have been added to Tiles Material. (I20041)

Version 1.1.0-alpha05

April 6, 2022

androidx.wear.tiles:tiles-*:1.1.0-alpha05 is released. Version 1.1.0-alpha05 contains these commits.

New Features

  • Added helper methods to convert LayoutElement to Layout, Timeline, TimelineEntry into these classes for easier Tiles building. (I2f6d1)
  • Colors object was added to the Material library to be passed in across components’ colors as a theme. (I0792c)

API Changes

  • Material Text component requires text passed in into constructor. This component can now be customized by setting weight. (I25dbd)
  • Removed constants from ChipDefaults that are not used in the public setters. (I7baed)
  • Removed getters from CompactChip & TitleChip that don't have matching setters. (I99e85)
  • Removed DEFAULT_PADDING from ProgressIndicatorDefaults. (Idabcd)
  • Material components now accept CharSequence for content description instead of String. (I5b21a)

Bug Fixes

  • Refactored setters implementation of optional parameters in Button. (Ib7135)
  • Font style variant has been added to the fonts in Typography. (I8dbc6)

Version 1.1.0-alpha04

March 23, 2022

androidx.wear.tiles:tiles-*:1.1.0-alpha04 is released. Version 1.1.0-alpha04 contains these commits.

New Features

  • Optional primary or secondary label can be added to PrimaryLayout. (Ib9916)
  • Text component can be customized by setting overflow, italic, underline, etc. (I703f7)

API Changes

  • Default color constants have been removed from the Tiles Material API. (I0ab55)
  • All clickable components in Tiles Material require Clickable object in their Builder’s constructor instead of an Action. (I2f101)

Bug Fixes

  • Text will now draw an ellipsis on overflow in Chip and Text component. (I8a2f8)
  • Improved components look when the user font scale is set to large. (Ib63b1)
  • Clarify Javadocs of setPrimaryChipContent in PrimaryLayout. (Ie6296)

Version 1.1.0-alpha03

February 23, 2022

androidx.wear.tiles:tiles-*:1.1.0-alpha03 is released. Version 1.1.0-alpha03 contains these commits.

API Changes

  • Text component with the recommended typography styles has been added to the TIles Material. (Iec0ae)

Version 1.1.0-alpha02

February 9, 2022

androidx.wear.tiles:tiles-*:1.1.0-alpha02 is released. Version 1.1.0-alpha02 contains these commits.

New Features

  • A new sub-library layouts in Tiles Material has been added. It contains opinionated Tiles layouts with recommended padding and margin applied to make Tile development faster and easier implementation. Initial layouts are:
    • PrimaryLayout (I7ba91) that represents the layout with a primary chip at the bottom and content in the center.
    • MultiSlotLayout (I32104) that represents a layout with labels on rows 1 and 3, horizontally aligned and spaced slots on row 2 and all followed by a 4th row that contains a primary chip.
    • ProgressIndicatorLayout (I9fec6) that represents a layout with the circular progress indicator around the edge of the screen and the given content inside.
  • CircularProgressIndicator (Ic4b88) has been added to the Tiles Material components.

API Changes

  • Renamed remaining constants used by TitleChip to include title in the name. (I14f4c)
  • setHorizontalAlignment method has been added to the Chip. (Ie6e0b)

Version 1.1.0-alpha01

January 26, 2022

androidx.wear.tiles:tiles-*:1.1.0-alpha01 is released. Version 1.1.0-alpha01 contains these commits.

New Features

  • The new library Tiles Material has been added. It contains components to build Tiles layouts faster and easier with Material design. Initial components are:
    • Button
    • Chip
    • CompactChip
    • TitleChip

Bug Fixes

  • Fix bug in TileUiClient which led to cached resources being discarded. (I60e0b)

Version 1.0

Version 1.0.1

January 26, 2022

androidx.wear.tiles:tiles-*:1.0.1 is released. Version 1.0.1 contains these commits.

Bug Fixes

  • Fix bug in TileUiClient which led to cached resources being discarded. (I60e0b)

Version 1.0.0

November 3, 2021

androidx.wear.tiles:tiles-*:1.0.0 is released. Version 1.0.0 contains these commits.

Major features of 1.0.0

  • The Wear Tiles library provides functionality to build custom Tiles for Wear OS devices, along with the classes that allow the system to fetch your Tile and display it right next to your watch face.
  • tiles-renderer allows you to show a Tile as part of an Android Activity, facilitating quick testing of your tile layouts.

Version 1.0.0-rc01

October 27, 2021

androidx.wear.tiles:tiles-*:1.0.0-rc01 is released. Version 1.0.0-rc01 contains these commits.

Version 1.0.0-beta01

October 13, 2021

androidx.wear.tiles:tiles-*:1.0.0-beta01 is released. Version 1.0.0-beta01 contains these commits.

Bug Fixes

  • Fixed NullPointerException in TileUiClient when an empty resource version was provided. (I0586e)

Version 1.0.0-alpha12

September 29, 2021

androidx.wear.tiles:tiles-*:1.0.0-alpha12 is released. Version 1.0.0-alpha12 contains these commits.

Bug Fixes

  • UpdateScheduler no longer uses a weak reference, fixing issues where TileUiClient would not update(I1120d, b/199061124)

  • Declare that SysUiTileUpdateRequester queries PacakgeManager, fixing a bug where tile updates would not work on R+ devices. (I1120d)

Version 1.0.0-alpha11

September 1, 2021

androidx.wear.tiles:tiles-*:1.0.0-alpha11 is released. Version 1.0.0-alpha11 contains these commits.

New Features

  • Added and released a testing library, androidx.wear.tiles:tiles-testing library to enable developers to test their tiles more easily. (Iedb6b)

API Changes

  • Renamed TileProviderService to TileService. (I1ad2c)
  • Tiles builders updated; static .builder() methods have been deprecated in favour of calling new Foo.Builder(), and setter overloads which accepted a Builder instance have been removed. (Ia9606)
  • TileRenderer should now use a UI context, instead of the application context. (I84b61)

Bug Fixes

  • Fix bug causing multiple underlines to be applied in certain situations. (Ib6712)

Version 1.0.0-alpha10

August 18, 2021

androidx.wear.tiles:tiles:1.0.0-alpha10, androidx.wear.tiles:tiles-proto:1.0.0-alpha10, and androidx.wear.tiles:tiles-renderer:1.0.0-alpha10 are released. Version 1.0.0-alpha10 contains these commits.

API Changes

  • Removed layout checkers from public API. These will always be enabled, although will only raise a warning if a check fails. (Ie9f29)
  • TileRenderer now accepts a UI context, instead of the Application Context.

Bug Fixes

  • Fixed bug which prevented clickable elements in a Spannable from being clicked.

Version 1.0.0-alpha09

July 21, 2021

androidx.wear.tiles:tiles:1.0.0-alpha09, androidx.wear.tiles:tiles-proto:1.0.0-alpha09, and androidx.wear.tiles:tiles-renderer:1.0.0-alpha09 are released. Version 1.0.0-alpha09 contains these commits.

New Features

  • Added layout checkers to Wear Tiles' renderer. (I3a869)
    • These are used to validate best practises in your tile. To begin with, these will raise a warning if your tile does not contain any elements with a Semantics modifier.
  • Added documentation for DefaultTileProviderClient and TestingTileProviderClient constructors. (I9f4b9)

API Changes

  • Renaming in TileProviderClient (I0ec36):
    • getApiVersion -> requestApiVersion
    • tile/resourcesRequest -> requestTile/Resources
    • onTileFooEvent -> sendOnTileFooEvent
  • Added layout checkers to Wear Tiles' renderer. (I3a869)

Bug Fixes

  • Ensure that a LaunchAction target does not have special permissions. (I39136)

Version 1.0.0-alpha08

June 30, 2021

androidx.wear.tiles:tiles:1.0.0-alpha08, androidx.wear.tiles:tiles-proto:1.0.0-alpha08, and androidx.wear.tiles:tiles-renderer:1.0.0-alpha08 are released. Version 1.0.0-alpha08 contains these commits.

New Features

  • Spannables now support line_height instead of line_spacing.

API Changes

  • Add support for line_height in Spannables, remove line_spacing. (Ibeb54)
    • Code using line_spacing should be ported to use line_height instead.

Bug Fixes

  • Fix bug when using proportional dimensions. (I37ace)
  • Fix bug preventing Text elements having content descriptions. (Id2c7d)

Version 1.0.0-alpha07

June 16, 2021

androidx.wear.tiles:tiles:1.0.0-alpha07, androidx.wear.tiles:tiles-proto:1.0.0-alpha07, and androidx.wear.tiles:tiles-renderer:1.0.0-alpha07 are released. Version 1.0.0-alpha07 contains these commits.

API Changes

  • Add TileProviderClient interface, and expose DefaultTileProviderClient, allowing implementations to bind to a TileProviderService interface. (I69165)

Version 1.0.0-alpha06

June 2, 2021

androidx.wear.tiles:tiles:1.0.0-alpha06, androidx.wear.tiles:tiles-proto:1.0.0-alpha06, and androidx.wear.tiles:tiles-renderer:1.0.0-alpha06 are released. Version 1.0.0-alpha06 contains these commits.

API Changes

  • All Builder classes now contain getters for all properties. Note that these are intended for testing purposes only (I9d155)
  • Package change: Classes in androidx.wear.tiles.builders have been moved to androidx.wear.tiles.
  • Add experimental tint support to Tiles. (I38929)
  • Renamed LayoutElementBuilders.HALIGN_* to LayoutElementBuilders.HORIZONTAL_ALIGN_* (I67e58)
  • Renamed LayoutElementBuilders.VALIGN_* to LayoutElementBuilders.VERTICAL_ALIGN_* (I67e58)
  • Renamed LayoutElementBuilders.SPAN_VALIGN_* to LayoutElementBuilders.SPAN_VERTICAL_ALIGN_* (I67e58)
  • Added builder classes for Requests and Events. (Ib5cf4)
  • Migrated TileProviderService to use request and event classes from RequestBuilders and EventBuilders, rather than RequestReaders/EventReaders (e.g. onTileRequest now provides you with a RequestBuilders.TileRequest, rather than RequestReaders.TileRequest). (I46ea1)

Bug Fixes

  • Fix bug in async image loading for Tiles renderer. (Iad9b0)
  • Fixed layout bug when placing an image with width or height set to expand() in a Box with width or height set to wrap(). (I33770)

Version 1.0.0-alpha05

May 18, 2021

androidx.wear.tiles:tiles:1.0.0-alpha05, androidx.wear.tiles:tiles-proto:1.0.0-alpha05, and androidx.wear.tiles:tiles-renderer:1.0.0-alpha05 are released. Version 1.0.0-alpha05 contains these commits.

API Changes

  • Removed getTileId from incoming tile events (TileAddEvent, TileRemoveEvent, TileEnterEvent, TileLeaveEvent, TileRequest). (Ifbba2)
  • Renamed ImageResource#setAndroidResourceByResid to setAndroidResourceByResId (I4ba6e)
  • Renamed TimelineManager#deInit to close, and implemented AutoCloseable. (I5dff2)

Version 1.0.0-alpha04

May 5, 2021

androidx.wear.tiles:tiles:1.0.0-alpha04, androidx.wear.tiles:tiles-proto:1.0.0-alpha04, and androidx.wear.tiles:tiles-renderer:1.0.0-alpha04 are released. Version 1.0.0-alpha04 contains these commits.

API Changes

  • Hidden concrete TileProviderService classes.
    • Made TileUpdateRequester take a Class<? extends TileProviderService>. (Ib7cca)
  • Added ability to add extras to AndroidActivity. (I748f4)

Tiles Version 1.0.0-alpha03

April 21, 2021

androidx.wear.tiles:tiles:1.0.0-alpha03, androidx.wear.tiles:tiles-proto:1.0.0-alpha03, and androidx.wear.tiles:tiles-renderer:1.0.0-alpha03 are released. Version 1.0.0-alpha03 contains these commits.

API Changes

  • Rename TileManager -> TileClient
    • Rename TileManager#create -> TileClient#connect (I91839)

Bug Fixes

  • Added Proguard rules to ensure tiles and tiles-renderer work properly with Proguard enabled (Ie3d85)

Version 1.0.0-alpha02

April 7, 2021

androidx.wear.tiles:tiles:1.0.0-alpha02, androidx.wear.tiles:tiles-proto:1.0.0-alpha02, and androidx.wear.tiles:tiles-renderer:1.0.0-alpha02 are released. Version 1.0.0-alpha02 contains these commits.

API Changes

  • androidx.wear:wear-tiles has moved groups, and should now be referred to as androidx.wear.tiles:tiles
  • androidx.wear:wear-tiles-renderer has moved groups, and should now be referred to as androidx.wear.tiles:tiles-renderer
  • TileRenderer.LoadActionListener now consumes an instance of androidx.wear.tiles.builders.StateBuilders.State rather than androidx.wear.tiles.proto.StateProto.State.
  • TileRenderer now accepts Tile resources from androidx.wear.tiles.builders.ResourceBuilders.Resources, rather than an instance of androidx.wear.tiles.renderer.ResourceAccessors.

Bug Fixes

  • Fixed inability to use LoadActionListener, as it exposed an internal class.

Version 1.0.0-alpha01

March 10, 2021

androidx.wear:wear-tiles:1.0.0-alpha01, androidx.wear:wear-tiles-proto:1.0.0-alpha01, and androidx.wear:wear-tiles-renderer:1.0.0-alpha01 are released. Version 1.0.0-alpha01 contains these commits.

New Features

  • The Wear Tiles Renderer library provides functionality to build custom Tiles for Wear OS devices, along with the classes that allow the system to fetch your Tile and display it right next to your watch face.