носить протомакет
Последнее обновление | Стабильный релиз | Кандидат на релиз | Бета-версия | Альфа-релиз |
---|---|---|---|---|
22 октября 2025 г. | 1.3.0 | - | - | 1.4.0-альфа02 |
Объявление зависимостей
Чтобы добавить зависимость от wear-protolayout, необходимо добавить репозиторий Google Maven в свой проект. Подробнее см. в репозитории Google Maven .
Добавьте зависимости для необходимых артефактов в файл build.gradle
вашего приложения или модуля:
классный
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" }
Котлин
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") }
классный
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" }
Котлин
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") }
Дополнительные сведения о зависимостях см. в разделе Добавление зависимостей сборки .
Обратная связь
Ваши отзывы помогают улучшить Jetpack. Сообщите нам, если вы обнаружите новые проблемы или у вас есть идеи по улучшению этой библиотеки. Пожалуйста, ознакомьтесь с уже существующими проблемами в этой библиотеке, прежде чем создавать новую. Вы можете проголосовать за существующую проблему, нажав на кнопку со звёздочкой.
Более подробную информацию см. в документации по системе отслеживания проблем .
Версия 1.4
Версия 1.4.0-альфа02
22 октября 2025 г.
Выпущена androidx.wear.protolayout:protolayout-*:1.4.0-alpha02
. Версия 1.4.0-alpha02 содержит следующие коммиты .
Новые функции
- Добавлен новый источник событий платформы (
isInAmbientMode
), описывающий, находится ли устройство в режиме Ambient Mode ( Ief832 ).
Изменения API
-
clickable
элементPendingIntent
теперь принимает резервное действие (LoadAction
/LaunchAction
), которое можно использовать, еслиPendingIntent
не поддерживается рендереромProtoLayout
. Резервное действие будет автоматически выбрано и размещено в макете, если версия рендерера ниже той, которая поддерживаетPendingIntent
. ( I6eee2 , b/450259727 ) - Поле
protoLayoutScope
вMaterialScope
теперь имеет значениеNonNull
для удобства использования при созданииMaterialScope
черезmaterialScopeWithResources
. Кроме того, существует функцияhasProtoLayoutScope
для проверки его наличия. ( I1858f , b/450067019 )
Версия 1.4.0-альфа01
24 сентября 2025 г.
Выпущена androidx.wear.protolayout:protolayout-*:1.4.0-alpha01
. Версия 1.4.0-alpha01 содержит следующие коммиты .
Новые функции
- Добавлен вспомогательный метод для
LayoutModifier
, который заставляет элемент плавно проявляться по мере того, как плитка становится видимой. ( I38531 , b/390345969 ) - Добавлен
materialScopeWithResources
для поддержки концепции M3MaterialScope
, которая также обеспечивает автоматическую регистрацию ресурсов. В рамках этого метода добавлены новые вспомогательные методы для изображений (backgroundImage
,avatarImage
и icon), устраняющие необходимость ручной регистрации ресурсов вonTileResourceRequest
при их использовании. ( I525bd , b/428692714 ) - Помощники
ProtoLayout
Kotlin дляImage
иImageResources
для использования сProtoLayoutScope
и автоматической регистрацией ресурсов. ( Iada82 , b/430584304 ) - Добавлен метод получения количества разрешенных свойств Lottie при настройке одной анимации Lottie. ( I73733 , b/436532706 )
- Добавьте API в
AndroidLottieResourceByResId
, чтобы разрешить настраивать анимацию Lottie через свойства, а также добавьте API для создания свойства для слота тематизации с идентификатором слота для указанного цвета. ( I301b3 , b/423581481 ) - Добавить API-интерфейсы провайдера для принятия
PendingIntent
в качестве действия щелчка ( I01978 , b/433802488 ) - Добавить новый API в
Image.Builder
-setImageResource
для установки объекта ресурса непосредственно для изображения вonTileRequest
, без необходимости регистрировать его в сопоставлении вonTileResourcesRequest
. ( Ifa69a , b/428693523 ) - Добавлена концепция
ProtoLayoutScope
для лучшей обработки ресурсов в Tiles. ( I132ce , b/428692423 ) -
ProtoLayout
Material3MaterialScope
теперь предоставляет полеContext
как публичное для использования в методах внутри области без необходимости его передачи. ( I0e5cc , b/414559956 ) - Сделать API семантики заголовков публичными ( I75299 , b/413653475 )
- Сделайте константы
ARC_DIRECTION_*
публичными для использования вArc/ArcLine/ArcText/DashedArcLine
. ( I83959 , b/427556439 )
Изменения API
- Мы отказались от методов
Image.Builder()
иImage.Builder.setResourceId
в пользу нового API автоматической регистрации ресурсов, доступного вImage.Builder(ProtoLayoutScope)
иImage.Builder.setImageResource
, которые устраняют необходимость переопределенияonTileResourcesRequest
. ( I7bfe6 , b/432758526 ) - Перенести API для создания
ProtoLayoutScope
из категории «Ограниченный доступ» в категорию «Общий доступ». Однако их не следует использовать, так как система уже обрабатывает эти вызовы. ( I1d8e8 , b/432758251 )
Исправления ошибок
- Добавить реализацию для поддержки
PendingIntent
вProtoTiles
( I38167 , b/430610429 ) - Добавить метод
invalidateLayout
. ( Ief898 ) - Перемещение minSdk по умолчанию из API 21 в API 23 ( Ibdfca , b/380448311 , b/435705964 , b/435705223 )
-
ImageResource
теперь имеет методыhashCode
иequals
. ( I650ee , b/428692423 , b/428693523 ) - Добавить новое прото-сообщение
PendingIntentAction
и его конструктор-оболочку ( Ie2aca , b/427643502 ) - Уменьшите частоту создания экземпляра
ZoneId
. ( I284d3 ) - Применить описание содержимого по умолчанию к однослотовой
textButton
. ( I0dc8a , b/415001534 ) - Исправлены расчеты для настройки максимального количества строк на стороне рендерера. ( I933bc , b/414353620 )
Версия 1.3
Версия 1.3.0
4 июня 2025 г.
Выпущен androidx.wear.protolayout:protolayout-*:1.3.0
. Версия 1.3.0 содержит следующие изменения .
Важные изменения с версии 1.2.0
- Дизайн часов выполнен в стиле Material 3, его компоненты и макеты оптимизированы для круглого дисплея и масштабируются соответствующим образом от маленьких до больших экранов.
- Сюда входит библиотека
protolayout-material3
только на Kotlin, с большим количеством API-интерфейсов в стиле Compose для следующих компонентов и функций: - Динамическая цветовая тема, созданная на основе системы и циферблата с новейшей темой Material3 для цветов, форм и типографики
-
MaterialScope
для учета всех предустановленных значений по умолчанию и упрощения настройки -
iconEdgeButton
,textEdgeButton
-
iconButton
,textButton
,button
,imageButton
,avatarButton
,compactButton
-
titleCard
,appCard
,graphicDataCard
,iconDataCard
,textDataCard
-
circularProgressIndicator
,segmentedCircularProgressIndicator
-
primaryLayout
,buttonGroup
- Все компоненты работают на всех уровнях SDK и версиях
ProtoLayout
Renderer, предоставляя разумные резервные варианты там, где это применимо.
- Сюда входит библиотека
- Больше API-интерфейсов в стиле Compose, совместимых с Kotlin, для базовых элементов ProtoLayout
-
LayoutModifier
с возможностью добавления большинства модификаторов в виде цепочечных функций (padding
,contentDescription
(включаяclearSemantics
),background
,clip
,opacity
и т. д.), преобразуемых в существующий объектModifiers
-
LayoutColors
иLayoutString
как типы с более простой поддержкой использования динамических полей и ограничений -
text
иfontStyle
- улучшенная поддержка карт для
StateBuilder
, включаяDynamicDataMap
и фабричные методы, такие какintAppDataKey
, для более простого создания объектовAppDataKey
-
- Поддержка анимации Lottie, включая возможность установки различных триггеров для запуска анимации, например, при загрузке макета или при его отображении.
- Улучшенная поддержка градиентов:
- API линейного градиента как часть
Brush
, который можно использовать в модификаторахBackground
для таких элементов, какBox
,Spacer
и т. д. - Разрешить динамические значения цвета в
ColorStop
, используемые для линейного и плавного градиента - Существующий градиент Sweep в объектах Arc теперь поддерживает динамические цвета, а также начальные и конечные углы.
- Привязка данных платформы в
protolayout-expression
для получения информации каждый раз, когда изменяется видимость макета, что, например, может использоваться для скрытия определенных частей макета при перемещении плитки - Добавлена библиотека тестирования
protolayout-testing
для упрощения покрытия модульным тестированием любых элементов ProtoLayout. - Новый элемент
DashedArcLine
с улучшенным набором функций, благодаря которому линия может иметь штрихи, в отличие от существующегоArcLine
- Поддержка
ArcSpacer
для задания длины в измерении DP вместо градусов - Добавлена ось
FontSetting
округлости, применимая к некоторым шрифтам.
Версия 1.3.0-rc01
20 мая 2025 г.
androidx.wear.protolayout:protolayout-*:1.3.0-rc01
выпущен без изменений по сравнению с предыдущим релизом. Версия 1.3.0-rc01 содержит следующие коммиты .
Версия 1.3.0-beta02
7 мая 2025 г.
Выпущена androidx.wear.protolayout:protolayout-*:1.3.0-beta02
. Версия 1.3.0-beta02 содержит следующие коммиты .
Исправления ошибок
- Мы внесли важное улучшение в значения оформления типографики, применяемые к API 36 и выше. Это связано с тем, что начиная с API 36 все плитки будут использовать системный шрифт, поэтому это изменение обеспечивает большую согласованность в карусели плиток. ( If316f )
- Конструкторы
Text
,Spacer
,ArcLine
иDashedArcLine
не будут генерировать исключения, если не заданыlayoutConstraints
для динамических значений. Обратите внимание, что старые рендереры по-прежнему требуют установкиlayoutConstraints
и будут игнорировать любые динамические значения, для которых они не заданы. ( Ic52e8 ) - Добавьте модификатор семантики заголовка, чтобы указать, что элемент макета относится к разделу контента для обеспечения доступности, и отметьте текст в слоте заголовка
primaryLayout
как заголовок доступности по умолчанию. ( Iae1fb ) - Финальная доработка UX-дизайна
primaryLayout
, в котором расстояние между слотом заголовка и основным слотом уменьшено до 4dp вместо 6dp на экранах меньшего размера. ( I0e056 ) - Применить описание содержимого по умолчанию к
textEdgeButton
. ( Ifaf8b ) - Небольшое обновление внутреннего заполнения
avatarButton
. ( I0910b )
Версия 1.3.0-beta01
9 апреля 2025 г.
Выпущена androidx.wear.protolayout:protolayout-*:1.3.0-beta01
. Версия 1.3.0-beta01 содержит следующие изменения .
Новые функции
Версия Wear ProtoLayout 1.3.0-beta01 означает, что эта версия библиотеки полностью функциональна, а API заблокирован (за исключением случаев, отмеченных как экспериментальные). Wear ProtoLayout 1.3 включает следующие новые функции и API:
- Дизайн часов выполнен в стиле Material 3, его компоненты и макеты оптимизированы для круглого дисплея и масштабируются соответствующим образом от маленьких до больших экранов.
- Сюда входит библиотека
protolayout-material3
только на Kotlin, с большим количеством API-интерфейсов в стиле Compose для следующих компонентов и функций: - Динамическая цветовая тема, созданная на основе системы и циферблата с новейшей темой Material3 для цветов, форм и типографики
-
MaterialScope
для учета всех предустановленных значений по умолчанию и упрощения настройки -
iconEdgeButton
,textEdgeButton
-
iconButton
,textButton
,button
,imageButton
,avatarButton
,compactButton
-
titleCard
,appCard
,graphicDataCard
,iconDataCard
,textDataCard
-
circularProgressIndicator
,segmentedCircularProgressIndicator
-
primaryLayout
,buttonGroup
- Все компоненты работают на всех уровнях SDK и версиях ProtoLayout Renderer, предоставляя разумные резервные варианты там, где это применимо.
- Сюда входит библиотека
- Больше API-интерфейсов в стиле Compose, совместимых с Kotlin, для базовых элементов ProtoLayout
-
LayoutModifier
с возможностью добавления большинства модификаторов в виде цепочечных функций (padding
,contentDescription
(включаяclearSemantics
),background
,clip
,opacity
и т. д.), преобразуемых в существующий объектModifiers
-
LayoutColors
иLayoutString
как типы с более простой поддержкой использования динамических полей и ограничений -
text
иfontStyle
- улучшенная поддержка карт для
StateBuilder
, включаяDynamicDataMap
и фабричные методы, такие какintAppDataKey
, для более простого создания объектовAppDataKey
-
- Поддержка анимации Lottie, включая возможность установки различных триггеров для запуска анимации, например, при загрузке макета или при его отображении.
- Улучшенная поддержка градиентов:
- API линейного градиента как часть
Brush
, который можно использовать в модификаторахBackground
для таких элементов, какBox
,Spacer
и т. д. - Разрешить динамические значения цвета в
ColorStop
, используемые для линейного и плавного градиента - Существующий градиент Sweep в объектах Arc теперь поддерживает динамические цвета, а также начальные и конечные углы.
- Привязка данных платформы в
protolayout-expression
для получения информации каждый раз, когда изменяется видимость макета, что, например, может использоваться для скрытия определенных частей макета при перемещении плитки - Добавлена библиотека тестирования
protolayout-testing
для упрощения покрытия модульным тестированием любых элементов ProtoLayout. - Новый элемент
DashedArcLine
с улучшенным набором функций, благодаря которому линия может иметь штрихи, в отличие от существующегоArcLine
- Поддержка
ArcSpacer
для задания длины в измерении DP вместо градусов - Добавлена ось
FontSetting
округлости, применимая к некоторым шрифтам.
Версия 1.3.0-альфа10
12 марта 2025 г.
Выпущена androidx.wear.protolayout:protolayout-*:1.3.0-alpha10
. Версия 1.3.0-alpha10 содержит следующие изменения .
Новые функции
- Добавить помощника для Brush в модификатор фона Kotlin. ( I995de )
- Обязательное поле контекста Android теперь открыто для всех в
MaterialScope
, чтобы упростить его использование в функциях разработчиков, создающих компоненты для плиток Material3. ( I7df73 )
Изменения API
- Переименуйте API
platformVisibilityStatus
вPlatformEventSources.isLayoutVisible
и добавьте новый экспериментальный APIPlatformEventSources.isLayoutUpdatePending
. ( Ie1e04 )
Исправления ошибок
- Поля для
primaryLayout
теперь округляются должным образом, что может повлиять на некоторые макеты, уменьшив пространство для основного слота на 2dp. ( I8f5d3 ) - Разъяснение динамической цветовой темы по умолчанию в компонентах
ProtoLayout
Material3. ( Iff5f3 ) - Шрифты
Typography.NUMERAL_*
больше не являются табличными/моноширинными по умолчанию. Если текст анимирован, настоятельно рекомендуется добавить к нему параметрFontSetting.tabularNum()
. Во всех остальных случаях этот моноширинный параметр не нужен, и без него будет доступно больше символов. ( Id3cd9 ) - Уточнение динамической цветовой темы по умолчанию в компонентах
ProtoLayout
Material3. ( I9d831 )
Версия 1.3.0-альфа09
26 февраля 2025 г.
Выпущена androidx.wear.protolayout:protolayout-*:1.3.0-alpha09
. Версия 1.3.0-alpha09 содержит следующие коммиты .
Новые функции
- Добавлены экспериментальные модификаторы для
enterTransition
иexitTransition
( I4a4d6 ). - Мы добавили дополнительную привязку к платформе, чтобы получать статус видимости полного макета при каждом его изменении. ( I250c3 )
- Разрешить внедрение данных о состоянии тестового приложения и платформе в
LayoutElementAssertionsProvider
для оценки динамических значений. ( Ib5fcb ) - Добавить угловые фильтры в библиотеку тестирования protolayout ( Ie2361 )
-
ButtonColors
,CardColors
иProgressIndicatorColors
теперь поддерживают метод копирования с возможностью переопределения некоторых параметров. ( Ie2054 )
Изменения API
- Добавить поддержку динамической привязки данных в библиотеку тестирования ( Ib98de )
- Исправлена ошибка
imageButton
при использовании с функциейbackgroundImage
путем удаления наложения. Кроме того, функцияbackgroundImage
позволяет указать значение null для цвета наложения, что означает, что наложение не будет применяться. ( Ibec3c )
Исправления ошибок
- Изменен метод
hasValueOfType
по умолчанию, чтобы он вызывалUnsupportedOperationException
вместоIllegalArgumentException
. ( Ia36c3 ) - Значения цветовых маркеров по умолчанию обновлены в соответствии с последней спецификацией. ( I75d44 )
- Исправлена проблема с наложением спектров, видимая на дуговых линиях в рендерере плиток AndroidX. ( I88190 )
Версия 1.3.0-альфа08
12 февраля 2025 г.
Выпущена androidx.wear.protolayout:protolayout-*:1.3.0-alpha08
. Версия 1.3.0-alpha08 содержит следующие коммиты .
Новые функции
- Добавить параметр списка
FontSetting
для текста Material3. ( Ic102d ) - Добавлен класс
DynamicDataMap
, которыйStateBuilder
теперь поддерживает для более безопасного типа API Kotlin для состояний приложения ( I012ba ). - Добавлены фабричные методы, такие как
intAppDataKey
, для упрощения создания объектовAppDataKey
( Icea2a ). -
DynamicDataValue
теперь имеет методhasValueOfType(Class<?>)
в дополнение к методамhasInt/hasColor/
.... ( I4f7a6 ) - Мы добавили
errorDim
вColorScheme
Material3 ProtoLayout для высокоприоритетных ошибок или экстренных действий, таких как оповещения о безопасности. ( Ia17bb ) - Мы добавили защиту от сбоя при доступе к глобальной настройке reducemotion, которая срабатывала на некоторых платформах, где эта настройка не была предусмотрена. ( I01e2c )
Изменения API
-
addKeyToValueMapping
переименован вaddToStateMap
, а методыDynamicDataMap.put
удалены, поскольку они были избыточными. ( Ibe9dd ) - Типографика Material3 теперь поддерживает переменную ось округлости для системных шрифтов, поддерживающих эту ось.
FontSetting
ProtoLayout поддерживает ось округлости для шрифтов, поддерживающих эту ось. ( I33eb5 ) -
multilineAlignment
переименован в метод выравнивания текста Material3. ( I2b66b ) - Обновите круговой индикатор хода выполнения, указав тип Box, а также укажите
mainContent
вconstructGraphic
как тип Box ( I5a3dc ). - Лучшая поддержка использования кругового индикатора прогресса на графике ( I039db )
Исправления ошибок
- Разрешить динамические значения в
ColorStop
, а также для начальных/конечных углов вSweepGradient
. ( I0146d ) - Исправления в документах. ( I4a63a )
- Обновлены компоненты Material 3 (
graphicCard
иavatarButton
) для обеспечения резервного варианта, когда параметр увеличенияweight
не поддерживается (например, ниже API 33). Обновлен компонент текста для обеспечения резервного вариантаTEXT_OVERFLOW_ELLIPSIZE_END
, когдаTEXT_OVERFLOW_ELLIPSIZE
не поддерживается рендерером. ( I19e2c ) - Обновление документации для
PrimaryLayoutMargins
. ( Ibaf7b )
Версия 1.3.0-альфа07
29 января 2025 г.
Выпущена androidx.wear.protolayout:protolayout-*:1.3.0-alpha07
. Версия 1.3.0-alpha07 содержит следующие изменения .
Новые функции
- Добавлена возможность API для установки различных триггеров для анимации Lottie. Кроме того, добавлен API для триггеров, срабатывающих при отображении макета ( I8272d ).
- Добавлены модификаторы
border
,visibility
иopacity
. ( I6d3dd ) - Добавлена кнопка аватара в компонент ProtoLayout Material3. ( Idb5ae )
- Теперь мы разрешаем настраивать поля (боковые и в некоторых случаях нижние) в Material3
primaryLayout
. ( Ib22f6 ) - Добавьте сегментированный вариант кругового индикатора прогресса. ( I6a648 )
- Добавлен компонент компактной кнопки в ProtoLayout Material3. ( Ia3c5c )
- Добавлены компоненты кнопки в форме таблетки и кнопки с изображением в ProtoLayout Material3. ( Ifb88a )
Изменения API
-
LayoutModfier.foldIn
теперь называетсяfoldRight
, чтобы лучше отражать ожидаемое поведение ( Idf242 ) - Триггер
VisibleOnce
теперь является экспериментальным. ( Ib2d26 ) - Удалите
withOpacity
из публичного API, так как существует альтернатива в виде графической библиотеки. ( I030c2 ) - Переименованы методы верхнего уровня в
LayoutString.kt
иLayoutColor.kt
, чтобы дать им понятные для Java имена. ( I7aff0 ) - Удалены не-ProtoLayout типографики в Material3. ( Idd9ae )
- Добавить суффикс Color к полям в классах
*Colors
в Material3. ( I2d114 )
Исправления ошибок
- Добавить реализацию резервной версии
EdgeButton
для старого рендерера без поддержки асимметричных углов. ( I63364 ) - Добавить резервную реализацию кругового индикатора прогресса со старым рендерером. ( I0f134 )
Версия 1.3.0-альфа06
15 января 2025 г.
Выпущена androidx.wear.protolayout:protolayout-*:1.3.0-alpha06
. Версия 1.3.0-alpha06 содержит следующие коммиты .
Новые функции
-
LayoutColor
для поддержки как статических, так и динамических типов цветов ( I4c89b ) - Добавлен компонент
ProtoLayout Material3
textButton. ( Id680d ) - Добавьте компонент
iconButton
ProtoLayout Material3. ( Ica3f0 ) - Добавлен компонент-контейнер кнопки ProtoLayout Material3. ( I17a38 )
- Добавлена поддержка семантических модификаторов Chainable для protolayout-material3 ( I4af62 ).
- Добавлен односегментный
CircularProgressIndicator
ProtoLayout Material3 ( I2c8a2 ) - Добавлены
padding
, модификаторыmetadata
( I8720a ) - Добавлены модификаторы
background
,clip
иclickable
( I35478 ) - Добавьте
LinearGradient
к Brush и разрешите его использование в модификаторе фона. ( Ic4dea ) - Добавить небольшой размер для appCard и
titleCard
. ( I91f98 ) - Добавлен компонент ProtoLayout Material3
graphicDataCard
. ( I92be7 ) - Добавлены компоненты ProtoLayout Material3
iconDataCard
иtextDataCard
. ( I4e1e4 ) - Добавлен компонент ProtoLayout Material3
appCard
. ( Id4c57 ) - Абстрагировать
EdgeButtonColors
отButtonColors
. ( I83624 ) - Добавлен компонент ProtoLayout Material3
titleCard
. ( I2dc72 )
Изменения API
- API ProtoLayout Material3 теперь принимает
LayoutString
для поддержки как статических, так и динамических текстов. ( I9c24a )
Исправления ошибок
- Добавить реализацию рендерера для наполнения
DashedArcLine
( I0c700 ) - Изменение рендерера, позволяющее
ArcSpacer
принимать длину dp. ( I1437b )
Версия 1.3.0-альфа05
11 декабря 2024 г.
Выпущена androidx.wear.protolayout:protolayout-*:1.3.0-alpha05
. Версия 1.3.0-alpha05 содержит следующие изменения .
Новые функции
- Добавлен
LayoutString
для поддержки привязываемых полей строк макета. ( Ida650 ) - Добавлен компонент контейнера карт
ProtoLayout Material3
. ( Ic985a )
Исправления ошибок
- Эта библиотека теперь использует аннотации JSpecify, определяющие значение null , которые являются типовыми. Разработчикам Kotlin следует использовать следующий аргумент компилятора для обеспечения корректного использования:
-Xjspecify-annotations=strict
(это значение по умолчанию, начиная с версии 2.1.0 компилятора Kotlin). ( Id1f9b , b/326456246 )
Версия 1.3.0-альфа04
13 ноября 2024 г.
Выпущена androidx.wear.protolayout:protolayout-*:1.3.0-alpha04
. Версия 1.3.0-alpha04 содержит следующие коммиты .
Новые функции
- Обновленная форма Material3 теперь представляет собой класс с полями, содержащими фактическое значение угла, как в Wear Compose. ( Ied8cd )
- Обновлены цвета Material3 для включения концепции
ColorScheme
, такой же, как в Wear Compose. ( If645e ) - Добавить несколько часто используемых сопоставителей в библиотеку тестирования. ( Ie5cec )
Версия 1.3.0-альфа03
30 октября 2024 г.
Выпущена androidx.wear.protolayout:protolayout-*:1.3.0-alpha03
. Версия 1.3.0-alpha03 содержит следующие коммиты .
Новые функции
- Добавьте
LayoutElementAssertionsProvider
,LayoutElementAssertion
иLayoutElementMatcher
в библиотеку тестирования ( Id1110 ).
Версия 1.3.0-альфа02
16 октября 2024 г.
Выпущена androidx.wear.protolayout:protolayout-*:1.3.0-alpha02
. Версия 1.3.0-alpha02 содержит следующие коммиты .
Новые функции
- Начальная версия библиотеки Material 3. Включает компоненты
text
,edgeButton
,buttonGroup
иprimaryLayout
.
Исправления безопасности
- С момента этого изменения androidx компилируется с использованием protobuf 4.28.2 для устранения CVE-2024-7254 . Обновите зависимость
androidx.wear.protolayout:protolayout-proto
иandroidx.wear.protolayout:protolayout-external-protobuf
с версии 1.3.0-alpha01 до версии 1.3.0-alpha02, чтобы устранить риск уязвимости.
Внешний вклад
Версия 1.3.0-альфа01
2 октября 2024 г.
Выпущена androidx.wear.protolayout:protolayout-*:1.3.0-alpha01
. Версия 1.3.0-alpha01 содержит следующие коммиты .
Исправления ошибок
- Уточнено, что доступность названий семейств шрифтов Roboto и Roboto Flex зависит от устройства. ( I193be )
- Включено семейство шрифтов Roboto Flex в рендерере плиток AndroidX. ( I08e94 )
Версия 1.2
Версия 1.2.1
16 октября 2024 г.
Выпущена androidx.wear.protolayout:protolayout-*:1.2.1
. Версия 1.2.1 содержит следующие коммиты .
Исправления безопасности
- С момента этого изменения androidx компилируется с использованием protobuf 4.28.2 для устранения уязвимости CVE-2024-7254 . Обновите зависимости
androidx.wear.protolayout:protolayout-proto
иandroidx.wear.protolayout:protolayout-external-protobuf
версии 1.2.0 до версии 1.2.1, чтобы устранить риск уязвимости.
Версия 1.2.0
7 августа 2024 г.
Выпущен androidx.wear.protolayout:protolayout-*:1.2.0
. Версия 1.2.0 содержит следующие коммиты .
Важные изменения с версии 1.1.0
-
FontStyle
был обновлен для получения дополнительной поддержки шрифтов для переменных осей и улучшенного API выбора шрифтов для поддержки будущих шрифтов Flex. - Поддержка дополнительных модификаторов:
- Модификатор трансформации, обеспечивающий перемещение, вращение и масштабирование с анимацией или без нее.
- Указание различных значений (горизонтального и вертикального) для каждого радиуса угла.
- Улучшена доступность всех сенсорных объектов за счет расширения области нажатия любого элемента, использующего модификатор Clickable, до размера не менее
48dp
на48dp
. - Улучшены
PrimaryLayout
иEdgeContentLayout
за счет добавленияsetResponsiveContentInsetEnabled
для лучшей поддержки адаптивного поведения этих макетов на экранах разных размеров и повышения согласованности плиток. - Улучшено масштабирование/отсутствие масштабирования Material Text для нелинейного масштабирования шрифтов Android 14.
- Улучшена поддержка направления макета RTL для всех дуговых элементов.
Дополнительные изменения
- Более полный список изменений, внесенных в версию 1.1.0, см. в примечаниях к выпуску beta01 .
Версия 1.2.0-rc01
24 июля 2024 г.
Выпущена androidx.wear.protolayout:protolayout-*:1.2.0-rc01
. Версия 1.2.0-rc01 содержит следующие коммиты .
Исправления ошибок
- Мы исправили стандартный Material Chip, так что его можно использовать в качестве значка только в том случае, если не передана ни одна первичная или вторичная метка. ( Iceef9 )
- Документация по макетам Material была обновлена и теперь включает в себя визуальные примеры с соответствующей страницы для облегчения понимания макетов. ( I0256a )
Версия 1.2.0-beta01
10 июля 2024 г.
Выпущена androidx.wear.protolayout:protolayout-*:1.2.0-beta01
. Версия 1.2.0-beta01 содержит следующие коммиты .
Новые функции
Версия Wear ProtoLayout 1.2.0-beta01 означает, что эта версия библиотеки полностью функциональна, а API заблокирован (за исключением случаев, отмеченных как экспериментальные). Wear ProtoLayout 1.2 включает следующие новые функции и API:
-
FontStyle
был обновлен и теперь поддерживает следующие дополнительные шрифты:- Настройка различных параметров шрифта, таких как
FontSetting.weight
иFontSetting.width
- Установка одинаковой ширины для всех цифровых символов - табличных цифр (настройка шрифта
FontSetting.tnum
) - Улучшенные API выбора шрифтов для поддержки будущих гибких шрифтов путем указания предпочтительных названий семейств шрифтов, которые будут использоваться.
- Настройка различных параметров шрифта, таких как
- Модификатор Extended
Corner
поддерживает указание каждогоCornerRadius
с отдельными горизонтальными и вертикальными значениями, что позволяет создавать элементы с асимметричными углами. - Добавлен новый модификатор
Transformation
, обеспечивающий перемещение, поворот и масштабированиеLayoutElement
. Эти преобразования можно анимировать с помощью динамических значений. - Добавлен
setArcDirection
с опциямиClockwise
,CounterClockwise
иNormal
для всех элементов дуги (Arc
,ArcLine
иArcText
) для лучшей поддержки в различных направлениях компоновки (таких как LTR и RTL). - Улучшена доступность всех сенсорных объектов за счет расширения области нажатия любого элемента, использующего модификатор
Clickable
, до размера не менее48dp
на48dp
. - Улучшены
PrimaryLayout
иEdgeContentLayout
за счёт добавленияsetResponsiveContentInsetEnabled
для лучшей поддержки адаптивного поведения этих макетов на экранах разных размеров и повышения согласованности плиток. Добавлено предупреждение об ошибках, предлагающее использовать эти API с возможностью быстрого исправления. - Улучшено масштабирование/отсутствие масштабирования Material
Text
для нелинейного масштабирования шрифтов Android 14.
Изменения API
- Имя семейства шрифтов по умолчанию (
DEFAULT_SYSTEM_FONT
) удалено, так как оно подразумевается отсутствием использования APIpreferredFontFamilies
. ( I39dab ) - Параметр, передаваемый в
FontSetting.width
, должен быть положительным. ( I1266f )
Версия 1.2.0-альфа05
26 июня 2024 г.
Выпущена androidx.wear.protolayout:protolayout-*:1.2.0-alpha05
. Версия 1.2.0-alpha05 содержит следующие коммиты .
Новые функции
- Добавьте метод
hasText
вMaterial.CompactChip
для проверки того, установлено ли текстовое содержимое. ( I6e8fc )
Изменения API
- Константы
FontFamily
перемещены вFontStyle
вместо класса Builder. ( I06ced ) - Обновите API
FontSetting.weight
иFontSetting.width
, включив аннотации Range и изменив параметр weight на int. ( Ia726c )
Исправления ошибок
- Немасштабируемые тексты в библиотеке Material теперь корректно работают с нелинейным масштабированием шрифтов Android 14. ( I6601e )
Версия 1.2.0-альфа04
29 мая 2024 г.
Выпущена androidx.wear.protolayout:protolayout-*:1.2.0-alpha04
. Версия 1.2.0-alpha04 содержит следующие коммиты .
Изменения API
- Добавлен API асимметричных углов, позволяющий отдельно указывать радиус каждого угла с помощью двух значений. ( Icbd69 )
- Расширен API
FontSetting
, включив в него: - Добавлен API семейств шрифтов в
FontStyle
, позволяющий указывать порядок использования семейств шрифтов. ( Iba9f5 ) - Переименованы константы для высоты пространства между содержимым и вторичной меткой в
LayoutDefaults
Material, которые изначально имели префикс «Edge content», чтобы сделать их более общими, поскольку их можно применять как кPrimaryLayout
, так иEdgeContentLayout
. ( I4dc32 )
Исправления ошибок
- Изменено наименование осей переменного шрифта с
axisName
наaxisTag
. ( I02ba3 )
Версия 1.2.0-альфа03
14 мая 2024 г.
Выпущена androidx.wear.protolayout:protolayout-*:1.2.0-alpha03
. Версия 1.2.0-alpha03 содержит следующие коммиты .
Новые функции
- Добавлен API для установки пользовательских значений насыщенности для
FontStyle
. ( I7390a )
Исправления ошибок
- Исправлена ошибка в
getTouchDelegateInfo
из-за пустой целевой карты. ( I2accf )
Версия 1.2.0-альфа02
1 мая 2024 г.
Выпущена androidx.wear.protolayout:protolayout-*:1.2.0-alpha02
. Версия 1.2.0-alpha02 содержит следующие коммиты .
Изменения API
- Мы добавили поддержку отключения волновой обратной связи для отдельных кликабельных элементов. ( If1ede )
- API для преобразования был удален из
ArcModifiers
, поскольку он не поддерживает эту функцию ( Ic0827 ). -
ArcDirectionProp
Builder теперь ожидает значение в конструкторе. ( I76ada ) - Метод
PlatformDataValues.Builder.putAll
позволит объединить одинPlatformDataValue
в другой. ( I50ba3 ) -
Text#setIsScalable
переименован вText#setScalable
. ( If920e ) - Material Text может задать, использовать ли масштабируемый размер (увеличивается при изменении размера шрифта пользователя) или нет. ( Ibc849 )
- Мы добавили возможность задать описание содержимого для
TitleChip
. ( I5d21f ) - Исправлена ошибка
CompactChip
для корректной работы только со значком и обновлен API для поддержки этой опции. ( I6589e )
Исправления ошибок
- Исправлена проблема потенциального дублирования данных платформы во время инициализации. ( Iba0fd )
- Добавлен новый метод получения данных для
DynamicDataNode
для получения стоимости узла. Стоимость используется при получении квоты динамического узла. В настоящее время узлы с фиксированными значениями имеют стоимость 0, все остальные узлы — 1. ( Ia33e1 ) - Удалить логику подсчета из
NO_OP_QUOTA_MANAGER
. ( Ib50b8 ) - Мы добавили правило lint, которое выводит предупреждение, когда
PrimaryLayout
используется безsetResponsiveContentInsetEnabled
и обеспечивает быстрое исправление. ( I12025 ) - Существует ограничение на количество узлов динамического выражения. ( Iffae8 )
Версия 1.2.0-альфа01
6 марта 2024 г.
Выпущена androidx.wear.protolayout:protolayout-*:1.2.0-alpha01
. Версия 1.2.0-alpha01 содержит следующие коммиты .
Новые функции
- Элементы
ProtoLayout Arc
теперь могут добавлять к нимArcDirection
(Clockwise
,Counterclockwise
илиNormal
). Добавление этого поведения кArc
,ArcLine
илиArcText
исправит их поведение в макетах с письмом справа налево. ( I90699 ) -
EdgeContentLayout
обновлен с помощью нового сеттераsetResponsiveContentInsetEnabled
для достижения лучшего соответствия рекомендациям UX, единообразия в плитках за счет размещения основной метки на фиксированном месте сверху и адаптивной вставки для меток. ( I60175 ) - Мы добавили
PrimaryLayout.setResponsiveContentInsetEnabled
, который добавляет адаптивную вставку к первичной метке, вторичной метке и нижнему чипу в этом макете, чтобы избежать выхода содержимого за край экрана. ( I0c457 ) - Добавляет метод удаления внешних полей из
CircularProgressIndicator
, чтобы его можно было использовать как меньший компонент. ( I55c06 )
Изменения API
- Средство визуализации плиток теперь по умолчанию исключает отступ шрифта для всех текстовых элементов, без возможности его включения. ( I3e300 )
Исправления ошибок
- Исправлена проблема выравнивания текста, когда в тексте одновременно используются многоточие, межбуквенный интервал и выравнивание по центру. ( I716c7 )
- Добавить обходной путь для проблемы с рисованием дуги Skia. ( I08f09 )
- Исправлено направление рисования
ArcLine
для макетов RTL. ( I6c141 )
Версия 1.1
Версия 1.1.0
7 февраля 2024 г.
Выпущен androidx.wear.protolayout:protolayout-*:1.1.0
. Версия 1.1.0 содержит следующие коммиты.
Важные изменения с версии 1.0.0
- Поддержка градиентов и лучшее представление длин более 360 градусов в
ArcLine
. - Форматирование даты и времени поддерживает различные часовые пояса для динамических типов данных.
- Улучшенные возможности автоматического изменения размера текста и многоточия для обработки обрезанного текста.
- Распорка поддерживает расширенные габариты с дополнительным грузом.
- Аннотация требований к версии схемы для всех API
ProtoLayout
. - Расширенная целевая область для любого
Clickable
элемента до 48 dp x 48 dp для удовлетворения требований доступности. - Отступы шрифта по умолчанию отключены и являются единственным поведением для всех элементов Text и компонентов Material, содержащих текст.
Дополнительные изменения
- Более полный список изменений, внесенных в версию 1.1.0, см. в примечаниях к выпуску beta01 .
Версия 1.1.0-rc01
24 января 2024 г.
Выпущена androidx.wear.protolayout:protolayout-*:1.1.0-rc01
. Версия 1.1.0-rc01 содержит следующие изменения.
Исправления ошибок
-
PlatformTimeUpdateNotifierImpl
срабатывает сразу после включения обновления. ( I77145 ) - Исправлен
CircularProgressIndicator
для макетов с направлением письма справа налево. Теперь он будет двигаться по часовой стрелке во всех случаях. ( I95ee3 ) - Добавить обходной путь для проблемы с рисованием дуги Skia. ( I08f09 )
Версия 1.1.0-beta01
10 января 2024 г.
Выпущен androidx.wear.protolayout:protolayout-*:1.1.0-beta01
. Версия 1.1.0-beta01 содержит следующие изменения.
Новые функции
Версия Wear ProtoLayout 1.1.0-beta01 означает, что эта версия библиотеки полностью функциональна, а API заблокирован (за исключением случаев, отмеченных как экспериментальные). Wear ProtoLayout 1.1 включает следующие новые функции и API:
-
ArcLine
теперь поддерживает градиент путем добавленияBrush
сSweepGradient
и наличия тени на конце для лучшего представления длины, превышающей 360 градусов, путем добавленияShadow
на существующийStrokeCap
. -
DynamicInstant
поддерживает зонное форматирование даты и времени.DynamicInstant
иDynamicDuration
могут использоваться как типы данных состояния или платформы. - Функция автоматического изменения размера текста позволяет устанавливать несколько размеров в
FontStyle.setSizes
, где размер текста будет автоматически масштабироваться в зависимости от свободного пространства внутри родительского элемента. Кроме того, мы улучшили параметры многоточия для текста, выходящего за пределы элемента, добавивTEXT_OVERFLOW_ELLIPSIZE
и отменивTEXT_OVERFLOW_ELLIPSIZE_END
. -
Spacer
теперь поддерживает расширенные размеры с необязательным весом. Для построенияExpandedDimensionProp
мы добавили вспомогательный методDimensionBuilders.weight
. - Поддержка динамического скрытия и отображения элементов макета с помощью
Modifier.visible
. Это включает в себя использование динамических значений вBoolProp
. - All
ProtoLayout
APIs now have schema version requirement annotation and version can be checked before calling a newer API. - Every element that has
Clickable
now 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
Text
elements. Additionally,AndroidTextStyle
and related setters have been removed from the public API. with following bug fixes: - Added a setter for positioning the edge content in
EdgeContentLayout
so 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
- Updates to
SweepGradient
API to allow accepting either colors orColorStops
in the constructor. ( I6676f )
Исправления ошибок
- Adding a restricted API and renderer support for setting a direction in which arc elements are drawn. ( Idef5a )
-
RoundMode
defaults toFloor
inFloatToInt32Node
when unspecified. The node will still throw an exception if the providedRoundMode
is unrecognized. ( I1b2d8 )
Version 1.1.0-alpha04
13 декабря 2023 г.
androidx.wear.protolayout:protolayout-*:1.1.0-alpha04
is released. Version 1.1.0-alpha04 contains these commits.
Новые функции
-
VersionInfo
class not implements theComparable
interface. ( I8d13c ) - Renderer now supports
TEXT_OVERFLOW_ELLIPSIZE
option. ( I7f085 )
Изменения API
- Text overflow option
TEXT_OVERFLOW_ELLIPSIZE_END
is now deprecated. Please use the new APITEXT_OVERFLOW_ELLIPSIZE
with 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,
AndroidTextStyle
and related setters have been removed from the public API. ( I79094 , Ib0b03 , I32959 , Iaf7d5 , Ifa298 , I0a4ae , Ida9d3 ) -
Modifier.hidden
is replaced withModifier.visible
( I56902 ) -
FontStyle#setSizes
now accepts int instead ofSpProp
arguments. ( I02b37 )
Исправления ошибок
- 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
29 ноября 2023 г.
androidx.wear.protolayout:protolayout-*:1.1.0-alpha03
is released. Version 1.1.0-alpha03 contains these commits.
Новые функции
- Add experimental support for dynamically hiding/unhiding layout elements ( I64a78 )
- Add dynamic value support to
BoolProp
( I2fe96 ) - Add schema version requirement annotation to
ProtoLayout
APIs ( I0f03c ) - Extending the API with the new option in
TextOverflow
for 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.weight
for buildingExpandedDimensionProp
with weight. ( I4f72b ) -
DynamicInstant
andDynamicDuration
can be used as state or platform data types. ( I6819f )
Изменения API
- Update The API to hide
DynamicZonedDateTime
and 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
15 ноября 2023 г.
androidx.wear.protolayout:protolayout-*:1.1.0-alpha02
is released. Version 1.1.0-alpha02 contains these commits.
Новые функции
- Added an
ArcLine
StrokeCap
Shadow
field 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
StrokeCap
Shadow
. ( I48b17 ) - Добавить поддержку рендеринга для Sweep Gradient в
ArcLine
. ( I4d5bb )
Version 1.1.0-alpha01
18 октября 2023 г.
androidx.wear.protolayout:protolayout-*:1.1.0-alpha01
is released. Version 1.1.0-alpha01 contains these commits.
Новые функции
- 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
EdgeContentLayout
so it can be positioned before other content. ( Ie8e8a )
Исправления ошибок
- 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 )
Версия 1.0
Версия 1.0.0
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
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
- We have removed
setLayoutConstraintForDynamicAnchorAngle
andgetLayoutConstraintForDynamicAnchorAngle
methods 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 )
Исправления ошибок
- We have added a check to throw if
DynamicColor
has been set for aSpanText
. ( I0e5bc ) - It is clarified that
DAILY_CALORIES
data source unit is kcal. ( Iaa785 )
Version 1.0.0-beta01
21 июня 2023 г.
androidx.wear.protolayout:protolayout-*:1.0.0-beta01
is released. Version 1.0.0-beta01 contains these commits.
Новые функции
- Allow setting clock for time binding tests. ( I05622 )
Изменения API
-
PlatformDataReceiver.onData()
andStateBuilders.Builder.addKeyToValueMapping
now accept type-safe mapping ofDynamicDataKey
toDynamicDataValue
rather than unsafe generics. That means thatDynamicDataValue
is now typed with itsDynamicType
.HEART_RATE_ACCURACY_X
constants moved to the root ofPlatformHealthSources
, to match other Android constants positioning.HEART_RATE_ACCURACY_X
int constants are now used directly inDynamicHeartRateAccuracy.constant()
andDynamicHeartRateAccuracy.dynamicDataValueOf()
instead of value constant. ( I82ff5 ) - The
PlatformHealthSources.Constants
class was instantiable by mistake. This has been fixed now. ( Icb849 ) -
PlatformTimeUpdateNotifier#setReceiver
now receivesRunnable
instead ofSupplier
function andExecutor
to notify on. ( I9d938 ) - We have changed the parameter type in the
PlatformTimeUpdateNotifier#setReceiver
fromCallable
toSupplier
. ( I664bf ) -
CompactChip
andTitleChip
now support adding an icon to it. ( I5a01e )
Исправления ошибок
- 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
7 июня 2023 г.
androidx.wear.protolayout:protolayout-*:1.0.0-alpha11
is released. Version 1.0.0-alpha11 contains these commits.
Новые функции
- We've added a
PlatformDataKey
for heart rate accuracy. ( I7f9b8 )
Изменения API
- Rename
StateBuilders#getIdToValueMapping
togetKeyToValueMapping
and change the return type toMap<<AppDataKey<?>,DynamicDataValue>
. ( Iaa7ae ) - Make
StateStore
a final class ( I408ca ) -
TimeGateway
interface has been replaced byPlatformTimeUpdateNotifier
inprotolayout-expression-pipeline
library which provides desired frequency for updating time data. ( I60869 ) - Rename
register
/unregisterForData
inPlatformDataProvider
toset
/clearReceiver
( I14b02 ) - In Material Text,
getExcludeFontPadding
has 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_NUMBER
has been renamed toMAX_BUTTONS
. ( I84788 ) -
DAILY_DISTANCE
is renamed toDAILY_DISTANCE_M
. ( I4f758 )
Исправления ошибок
- Update Prop types docs to clarify why static value is enforced. Specify the default value used if static value wasn't provided. ( I155aa )
-
PlatformDataKey
namespaces should follow Java style naming. ( I47bda )
Version 1.0.0-alpha10
24 мая 2023 г.
androidx.wear.protolayout:protolayout-*:1.0.0-alpha10
is released. Version 1.0.0-alpha10 contains these commits.
Новые функции
- Add
AppDataKey
for accessing app pushed state; AddPlatformDataKey
for accessing platform data; Add namespace support inStateStore
. ( I7985e ) - Support
Equal
andNotEqual
operations forDynamicBool
. ( I6a0c1 )
Изменения API
-
FontStyles
class is now final ( Iaa2ea ) -
LayoutElementBuilders#FontStyles
has been deprecated. Please useandroidx.wear.protolayout.Typography
or create your ownFontStyle
. ( Ic929b ) - Hide
Action#Builder
nested interface fromAction
interface. Implementations of Builder are already provided byLoadAction
andLaunchAction
classes. ( I1d70c ) - Allow using
DynamicFloat
withFloatProp
. Note thatFloatProp
do no require layout constraints as it's not used as a layout changing prop. ( I286ac ) - The
LoalAction
andSetStateAction
actions are removed as they were not really supported yet. ( I5d6a6 ) - Added support for ARGB_8888 format for inline image resources. ( I8a07c )
- Rename
StateEntryValue
toDynamicDataValue
, and update the state APIS to use theDynamicDataKey
( 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 theStateStore
. As a result, the developer needs to ensure that they do not have more thanMAX_STATE_ENTRY_COUNT
entries in the map otherwise they will get anIllegalStateException
when creating or updating theStateStore
. ( Ibadb3 ) - Hide
OnLoadTrigger
andOnConditionMetTrigger
classes, and renamesetTrigger
tosetCondition
forOnConditionMetTrigger
. ( Ibf629 ) - For performance and compatibility reasons, the
ProtoLayout
renderers won't support the full set of features inAnimatedVectorDrawable
resources. 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.cubicBezier
method replaces theCubicBezierEasing.Builder
. With that theEasingFunction
class is removed and the easing constants from that class are now directly accessible from theEasing
interface. In additionsetInfiniteRepeatable
is replaced byINFINITE_REPEATABLE_WITH_RESTART
andINFINITE_REPEATABLE_WITH_REVERSE
( Ib41e7 ) - Implement
PlatformDataProvider
to provide heart rate and daily steps.SensorGateway
interface is removed from public API. ( I55b84 ) - Add
PlatformDataProvider
, and updateStateStore
to register toPlatformDataProvider
when the provider's supported key is required by node from expression pipeline. ( Ib616a ) -
SensorGateway
is no longerCloseable
as it no longer maintains any state. ( I6b4f7 ) - Allow using
FloatProp
withDynamicFloat
for progress inCircularProgressIndicator
. This is supported for renderers supporting version 1.2. Old renderers will fallback to thestaticValue
if provided, otherwise to 0 ( I0d91b ) -
MultiButtonLayout
constants have been refactored intoLayoutDefaults.MultiButtonLayoutDefaults
class which now contains those for button sizes depending on a number of buttons in the layout. ( I13973 ) - Support using
StringProp
withDynamicString
in Material Text. This is supported for renderers supporting version 1.2. Old renderers will fallback to the provided static value. UpdateText#getText
return type fromString
toStringProp
. ( I7275b )
Version 1.0.0-alpha09
10 мая 2023 г.
androidx.wear.protolayout:protolayout-*:1.0.0-alpha09
is released. Version 1.0.0-alpha09 contains these commits.
Новые функции
- 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
StrokeCap
support 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
-
enable/disablePlatformSource
methods 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
@IntRange
for duration and delay in AnimationParameters. ( I388b6 )
Version 1.0.0-alpha08
19 апреля 2023 г.
androidx.wear.protolayout:protolayout-*:1.0.0-alpha08
is released. Version 1.0.0-alpha08 contains these commits.
Новые функции
-
AndroidTextStyle
has been added toLayoutElementBuilders
. ( I8d967 ) - We have added support for setting excluding font padding in
ProtoLayout
Material Text. ( I17f5d ) - ARGB_8888 is now supported for inline images. ( I18c1e )
-
DynamicColor
now supportsonCondition
operation. ( I10927 )
Изменения API
- Support custom duration for reverse animation ( I3251f )
- We've added the
SemanticDescription
modifier. In addition,ContentDescription
is not bindable. ( I3f1d ) - The
DynamicBool.isFalse()
method is now replaced withDynamicBool.negate()
and theDynamicBool.isTrue()
is removed. In addition NaNDynamicFloat
values and narrowing aDynamicInt32
to aDynamicFloat
now emit an invalid dynamic result. ( I6ac1e ) - Int and float formatters now use the Builder pattern. ( Ieb213 )
Исправления ошибок
- Fallback static value has been removed from animatable fields. ( Ifcb01 )
-
DynamicTypeValueReceiver#onPreUpdate
has been removed. ( I2dc35 ) - Length of Strings in dynamic expressions are now capped. ( I4c93 )
- The gradle dependencies are now correctly set to
api
instead ofimplementation
when required. ( I40503 )
Version 1.0.0-alpha07
5 апреля 2023 г.
androidx.wear.protolayout:protolayout-*:1.0.0-alpha07
is released. Version 1.0.0-alpha07 contains these commits.
Новые функции
Изменения API
-
sensorGateway#registerSensorGatewayConsumer
takes data type as a parameter instead of method in Consumer. ( Icf314 ) -
ObservableStateStore
has been renamed toStateStore
. ( Ieb0e2 ) - Added
DynamicTypeEvaluator.Builder
instead of constructor arguments to allow more optional arguments, includingObservableStateStore
which now defaults to an empty store. ( I6f832 ) - Refactored order of parameters in
DynamicTypeEvaluator
. ( Ic1ba4 )
Исправления ошибок
- Correctly propagate signals from platform sensor sources to downstream nodes ( I5a922 )
Version 1.0.0-alpha06
22 марта 2023 г.
androidx.wear.protolayout:protolayout-*:1.0.0-alpha06
is released. Version 1.0.0-alpha06 contains these commits.
Новые функции
- 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
DynamicColor
support to Border and Background - We've added dynamic value support to types in
DimensionBuilder
- Layout and components from
tiles-material
are moving toprotolayout-material
Изменения API
-
LoadActionListener
has been added toProtoLayoutViewInstance
. ( If7806 )
Исправления ошибок
- 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.
Новые функции
- We've added an experimental "content update" animation to the
Modifiers
object. This animation will trigger whenever the element (with this modifier) or one of its children changes during a layout update. ( bd03e5d )
Изменения API
- We've added
forwardRepeatDelayMillis
andreverseRepeatDelayMillis
toRepeatable
. We've also renameddelayMillis
inAnimationSpec
tostartDelayMillis
( Ifb266 ) -
DynamicTypeEvaluator.bind
methods now accept an Executor. ( I346ab ) - We've added the
startEvaluation
method to theBoundDynamicType
to trigger the evaluation after the dynamic type is bound. ( I19908 )
Исправления ошибок
- The Animator object will be reused for subsequent animations of a single element. ( Ia3be9 )
Version 1.0.0-alpha04
22 февраля 2023 г.
androidx.wear.protolayout:protolayout-*:1.0.0-alpha04
is released. Version 1.0.0-alpha04 contains these commits.
Новые функции
-
ObservableStateStore
now 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
DynamicInt32
values ( I05485 ) - We've added
OnLoad
andOnConditionalMet
triggers. 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
AnimatedVectorDrawable
andSeekableAnimatedVectorDrawable
as layout resources.
Изменения API
- Sensor data requires API 29+. ( I8099e )
- We've added two
launchAction
helper methods (for launching Activities).
Исправления ошибок
- Rename
set/getSpec
toset/getAnimationSpec
in Tiles animation ( I3d74b )
Version 1.0.0-alpha03
8 февраля 2023 г.
androidx.wear.protolayout:protolayout-*:1.0.0-alpha03
is released. Version 1.0.0-alpha03 contains these commits.
Новые функции
- 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
DynamicTypeEvaluator
class 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
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.
Новые функции
- Layout builders from
androidx.wear.tiles:tiles
are moving toandroidx.wear.protolayout:protolayout
. The ones inandroidx.wear.tiles:tiles
will be deprecated in one of the next alpha releases.
Version 1.0.0-alpha01
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.
Новые функции
- This release introduces a new library "ProtoLayout Expression" for creating expressions from dynamic variables.