носить протомакет

Эта библиотека позволяет определять набор макетов пользовательского интерфейса и выражений, не относящихся к пользовательскому интерфейсу, для визуализации/оценки на удаленных поверхностях.
Последнее обновление Стабильный релиз Кандидат на релиз Бета-версия Альфа-релиз
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 для поддержки концепции M3 MaterialScope , которая также обеспечивает автоматическую регистрацию ресурсов. В рамках этого метода добавлены новые вспомогательные методы для изображений ( 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 Material3 MaterialScope теперь предоставляет поле 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 и добавьте новый экспериментальный API PlatformEventSources.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.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 ) удалено, так как оно подразумевается отсутствием использования API preferredFontFamilies . ( 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 , включив в него:
    • Настройка функций шрифта, например, установка табличного шрифта. ( If12b7 )
    • Настройка вариации шрифта, например, настройка пользовательской ширины для переменных шрифтов. ( I2b36d )
  • Добавлен 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-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 or ColorStops in the constructor. ( I6676f )

Исправления ошибок

  • Adding a restricted API and renderer support for setting a direction in which arc elements are drawn. ( Idef5a )
  • RoundMode defaults to Floor in FloatToInt32Node when unspecified. The node will still throw an exception if the provided RoundMode 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 the Comparable 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 API TEXT_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 with Modifier.visible ( I56902 )
  • FontStyle#setSizes now accepts int instead of SpProp 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 building ExpandedDimensionProp with weight. ( I4f72b )
  • DynamicInstant and DynamicDuration can be used as state or platform data types. ( I6819f )

Изменения API

  • Update The API to hide DynamicZonedDateTime and move all its operations to DyanamicInstant ( 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 for SweepGradient . ( 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 and getLayoutConstraintForDynamicAnchorAngle 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 nested LayoutElements . ( I8a74b )

Исправления ошибок

  • We have added a check to throw if DynamicColor has been set for a SpanText . ( 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() and StateBuilders.Builder.addKeyToValueMapping now accept type-safe mapping of DynamicDataKey to DynamicDataValue rather than unsafe generics. That means that DynamicDataValue is now typed with its DynamicType . HEART_RATE_ACCURACY_X constants moved to the root of PlatformHealthSources , to match other Android constants positioning. HEART_RATE_ACCURACY_X int constants are now used directly in DynamicHeartRateAccuracy.constant() and DynamicHeartRateAccuracy.dynamicDataValueOf() instead of value constant. ( I82ff5 )
  • The PlatformHealthSources.Constants class was instantiable by mistake. This has been fixed now. ( Icb849 )
  • PlatformTimeUpdateNotifier#setReceiver now receives Runnable instead of Supplier function and Executor to notify on. ( I9d938 )
  • We have changed the parameter type in the PlatformTimeUpdateNotifier#setReceiver from Callable to Supplier . ( I664bf )
  • CompactChip and TitleChip 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 to getKeyToValueMapping and change the return type to Map<<AppDataKey<?>,DynamicDataValue> . ( Iaa7ae )
  • Make StateStore a final class ( I408ca )
  • TimeGateway interface has been replaced by PlatformTimeUpdateNotifier in protolayout-expression-pipeline library which provides desired frequency for updating time data. ( I60869 )
  • Rename register / unregisterForData in PlatformDataProvider to set / clearReceiver ( I14b02 )
  • In Material Text, getExcludeFontPadding has been renamed to hasExcludeFontPadding . ( 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 to MAX_BUTTONS . ( I84788 )
  • DAILY_DISTANCE is renamed to DAILY_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; Add PlatformDataKey for accessing platform data; Add namespace support in StateStore . ( I7985e )
  • Support Equal and NotEqual operations for DynamicBool . ( I6a0c1 )

Изменения API

  • FontStyles class is now final ( Iaa2ea )
  • LayoutElementBuilders#FontStyles has been deprecated. Please use androidx.wear.protolayout.Typography or create your own FontStyle . ( Ic929b )
  • Hide Action#Builder nested interface from Action interface. Implementations of Builder are already provided by LoadAction and LaunchAction classes. ( I1d70c )
  • Allow using DynamicFloat with FloatProp . Note that FloatProp do no require layout constraints as it's not used as a layout changing prop. ( I286ac )
  • The LoalAction and SetStateAction actions are removed as they were not really supported yet. ( I5d6a6 )
  • Added support for ARGB_8888 format for inline image resources. ( I8a07c )
  • 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 )
  • Hide OnLoadTrigger and OnConditionMetTrigger classes, and rename setTrigger to setCondition for OnConditionMetTrigger . ( Ibf629 )
  • For performance and compatibility reasons, the ProtoLayout renderers won't support the full set of features in AnimatedVectorDrawable 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 the CubicBezierEasing.Builder . With that the EasingFunction class is removed and the easing constants from that class are now directly accessible from the Easing interface. In addition setInfiniteRepeatable is replaced by INFINITE_REPEATABLE_WITH_RESTART and INFINITE_REPEATABLE_WITH_REVERSE ( Ib41e7 )
  • Implement PlatformDataProvider to provide heart rate and daily steps. SensorGateway interface is removed from public API. ( I55b84 )
  • Add PlatformDataProvider , and update StateStore to register to PlatformDataProvider when the provider's supported key is required by node from expression pipeline. ( Ib616a )
  • SensorGateway is no longer Closeable as it no longer maintains any state. ( I6b4f7 )
  • Allow using FloatProp with DynamicFloat for progress in CircularProgressIndicator . This is supported for renderers supporting version 1.2. Old renderers will fallback to the staticValue if provided, otherwise to 0 ( I0d91b )
  • MultiButtonLayout constants have been refactored into LayoutDefaults.MultiButtonLayoutDefaults class which now contains those for button sizes depending on a number of buttons in the layout. ( I13973 )
  • Support using StringProp with DynamicString in Material Text. This is supported for renderers supporting version 1.2. Old renderers will fallback to the provided static value. Update Text#getText return type from String to StringProp . ( 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 for ArcLine . ( 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 from DynamicTypeEvaluator . The caller should be responsible for updates. ( I78c6d )
  • Allow capping the size of bound data types. ( Ie2966 )
  • Add support for dynamic content description in protolayout-material . ( I62c8e )
  • Use long and @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 to LayoutElementBuilders . ( 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 supports onCondition 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 with DynamicBool.negate() and the DynamicBool.isTrue() is removed. In addition NaN DynamicFloat values and narrowing a DynamicInt32 to a DynamicFloat 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 of implementation 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.

Новые функции

  • Add dynamic value support to StringProp ( I04342 )
  • Mark bindable layout elements ( Ia110b )

Изменения API

  • sensorGateway#registerSensorGatewayConsumer takes data type as a parameter instead of method in Consumer. ( Icf314 )
  • ObservableStateStore has been renamed to StateStore . ( Ieb0e2 )
  • Added DynamicTypeEvaluator.Builder instead of constructor arguments to allow more optional arguments, including ObservableStateStore 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 to protolayout-material

Изменения API

  • LoadActionListener has been added to ProtoLayoutViewInstance . ( 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 and reverseRepeatDelayMillis to Repeatable . We've also renamed delayMillis in AnimationSpec to startDelayMillis ( Ifb266 )
  • DynamicTypeEvaluator.bind methods now accept an Executor. ( I346ab )
  • We've added the startEvaluation method to the BoundDynamicType 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 and OnConditionalMet 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 and SeekableAnimatedVectorDrawable as layout resources.

Изменения API

  • Sensor data requires API 29+. ( I8099e )
  • We've added two launchAction helper methods (for launching Activities).

Исправления ошибок

  • Rename set/getSpec to set/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() and fromByteArray() 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 to androidx.wear.protolayout:protolayout . The ones in androidx.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.