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

Эта библиотека позволяет определять набор макетов пользовательского интерфейса и выражений, не относящихся к пользовательскому интерфейсу, для визуализации/оценки на удаленных поверхностях.
Последнее обновление Стабильный релиз Кандидат на релиз Бета-версия Альфа-релиз
24 сентября 2025 г. 1.3.0 - - 1.4.0-альфа01

Объявление зависимостей

Чтобы добавить зависимость от 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-альфа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 .
  • Все API ProtoLayout теперь имеют аннотацию требований к версии схемы, и версию можно проверить перед вызовом нового API.
  • Целевая область каждого элемента, имеющего Clickable теперь расширена в средстве рендеринга как минимум до 48x48, чтобы лучше соответствовать требованиям доступности.
  • Следуя другим компонентам Material и инициативам Compose, мы теперь отключили заполнение шрифтов по умолчанию для всех Text элементов. Кроме того, AndroidTextStyle и связанные с ним параметры настройки были удалены из общедоступного API. со следующими исправлениями ошибок:
  • Добавлен установщик для позиционирования краевого содержимого в EdgeContentLayout , чтобы его можно было расположить перед другим содержимым.
  • Последовательное создание исключения при обнаружении нераспознанного значения перечисления.
  • Сделайте недействительным результат выражения, если оно возвращает недопустимое числовое значение (NaN или бесконечное) или выдает ArithmeticException .

Изменения API

  • Обновления API SweepGradient , позволяющие принимать в конструкторе либо цвета, либо ColorStops . ( I6676f )

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

  • Добавление ограниченного API и поддержки средства рендеринга для установки направления рисования элементов дуги. ( Idef5a )
  • RoundMode по умолчанию имеет значение Floor в FloatToInt32Node , если оно не указано. Узел все равно выдаст исключение, если предоставленный RoundMode не распознается. ( I1b2d8 )

Версия 1.1.0-альфа04

13 декабря 2023 г.

Выпущен androidx.wear.protolayout:protolayout-*:1.1.0-alpha04 . Версия 1.1.0-alpha04 содержит эти коммиты.

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

  • Класс VersionInfo не реализует интерфейс Comparable . ( I8d13c )
  • Renderer теперь поддерживает опцию TEXT_OVERFLOW_ELLIPSIZE . ( I7f085 )

Изменения API

  • Параметр переполнения текста TEXT_OVERFLOW_ELLIPSIZE_END больше не поддерживается. Используйте новый API TEXT_OVERFLOW_ELLIPSIZE с очень похожим поведением. ( I822d8 )
  • Следуя другим компонентам Material и инициативам Compose, мы теперь отключили заполнение шрифтов по умолчанию для всех текстовых элементов. Кроме того, AndroidTextStyle и связанные с ним параметры настройки были удалены из общедоступного API. ( I79094 , Ib0b03 , I32959 , Iaf7d5 , Ifa298 , I0a4ae , Ida9d3 )
  • Modifier.hidden заменяется на Modifier.visible ( I56902 ).
  • FontStyle#setSizes теперь принимает аргументы int вместо SpProp . ( I02b37 )

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

  • Вызывайте исключение при обнаружении значения перечисления Undefine или Unrecounced. ( I9d2cf )
  • Рефакторинг DynamicTypeBindingRequest . ( I27b57 )
  • Сделайте недействительным результат выражения, если оно возвращает недопустимое числовое значение (NaN или бесконечное) или выдает ArithmeticException . ( I681ae )

Версия 1.1.0-альфа03

29 ноября 2023 г.

Выпущен androidx.wear.protolayout:protolayout-*:1.1.0-alpha03 . Версия 1.1.0-alpha03 содержит эти коммиты.

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

  • Добавить экспериментальную поддержку динамического скрытия/показания элементов макета ( I64a78 ).
  • Добавьте поддержку динамических значений в BoolProp ( I2fe96 ).
  • Добавление аннотации требований к версии схемы в API ProtoLayout ( I0f03c ).
  • Расширение API с помощью новой опции в TextOverflow для эллипса текста в фиксированном родительском контейнере, даже если максимальное количество строк не достигнуто (но для текста недостаточно места). ( I110a9 )
  • Добавлен вспомогательный метод DimensionBuilders.weight для построения ExpandedDimensionProp с весом. ( I4f72b )
  • DynamicInstant и DynamicDuration можно использовать как типы данных состояния или платформы. ( I6819f )

Изменения API

  • Обновите API, чтобы скрыть DynamicZonedDateTime и перенести все его операции в DyanamicInstant ( I34b94 ).
  • Разделитель теперь поддерживает расширенные размеры по ширине/высоте. ( Ie7c94 )
  • Поддержка расширения целевой области щелчка в Renderer ( I39c79 )

Версия 1.1.0-альфа02

15 ноября 2023 г.

Выпущен androidx.wear.protolayout:protolayout-*:1.1.0-alpha02 . Версия 1.1.0-alpha02 содержит эти коммиты.

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

  • В API добавлено поле ArcLine StrokeCap Shadow . ( I830ec )
  • Расширение API, чтобы можно было указать ширину или высоту Spacer для расширения. ( I757ca )
  • Мы добавили экспериментальный API для автоматического масштабирования размера текста в зависимости от пространства, которое он имеет внутри родительского элемента. ( Иббе63 )
  • Поддержка минимального кликабельного размера ( I178e3 ).
  • Добавлена поддержка рендеринга StrokeCap Shadow . ( I48b17 )
  • Добавьте поддержку средства визуализации для Sweep Gradient в ArcLine . ( I4d5bb )

Версия 1.1.0-альфа01

18 октября 2023 г.

Выпущен androidx.wear.protolayout:protolayout-*:1.1.0-alpha01 . Версия 1.1.0-alpha01 содержит эти коммиты.

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

  • В Arcline добавлена опция кисти с поддержкой SweepGradient . ( Ie7ce3 )
  • Добавлена поддержка зонального форматирования даты и времени. ( Ибфае0 )
  • Добавлены прототипы и Java-оболочки, необходимые для зонального форматирования даты и времени. ( I97126 )
  • Добавлены геттеры для обратного чтения значения, хранящегося в DynamicDataValue . ( Ie6cea )
  • Добавлен установщик для позиционирования краевого содержимого в EdgeContentLayout , чтобы его можно было расположить перед другим содержимым. ( Ie8e8a )

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

  • Исправлена проблема, из-за которой выражение с многократной регистрацией источника данных по времени не обновлялось немедленно. ( I8e1a8 )
  • Исправлена ошибка центрирования корневого элемента во время обновления различий. ( Ie48f7 )
  • Неустановленные (или пустые) значения ограничений макета больше не будут игнорироваться. ( Ibc785 )
  • Уменьшена задержка между отображением макета и инициализацией узлов его конвейера. ( I38d4e )

Версия 1.0

Версия 1.0.0

9 августа 2023 г.

Выпущен androidx.wear.protolayout:protolayout-*:1.0.0 . Версия 1.0.0 содержит эти коммиты.

Основные особенности версии 1.0.0

Библиотека ProtoLayout представляет API для создания макетов и выражений, которые можно использовать в различных средах Wear OS. Например, библиотека Tiles использует эти API для поддержки привязки данных платформы (для более быстрого обновления данных плиток) и анимации.

Версия 1.0.0-rc01

26 июля 2023 г.

Выпущен androidx.wear.protolayout:protolayout-*:1.0.0-rc01 . Версия 1.0.0-rc01 содержит эти коммиты.

  • Чтобы перейти с Tiles на ProtoLayout , следуйте инструкциям здесь .

Изменения API

  • Мы удалили методы setLayoutConstraintForDynamicAnchorAngle и getLayoutConstraintForDynamicAnchorAngle из элемента Arc. Эти методы были добавлены по ошибке и не оказали никакого влияния на предоставленный макет. ( Если7d01 )
  • Мы ограничили максимальную глубину макета ProtoLayout 30 вложенными LayoutElements . ( I8a74b )

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

  • Мы добавили проверку, которая выдается, если для SpanText установлен DynamicColor . ( I0e5bc )
  • Уточняется, что единицей источника данных DAILY_CALORIES является ккал. ( Iaa785 )

Версия 1.0.0-бета01

21 июня 2023 г.

Выпущен androidx.wear.protolayout:protolayout-*:1.0.0-beta01 . Версия 1.0.0-beta01 содержит эти коммиты.

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

  • Разрешить установку часов для тестов привязки времени. ( I05622 )

Изменения API

  • PlatformDataReceiver.onData() и StateBuilders.Builder.addKeyToValueMapping теперь принимают типобезопасное сопоставление DynamicDataKey с DynamicDataValue , а не небезопасные универсальные шаблоны. Это означает, что DynamicDataValue теперь типизируется с помощью DynamicType . Константы HEART_RATE_ACCURACY_X перемещены в корень PlatformHealthSources , чтобы соответствовать расположению других констант Android. Константы HEART_RATE_ACCURACY_X int теперь используются непосредственно в DynamicHeartRateAccuracy.constant() и DynamicHeartRateAccuracy.dynamicDataValueOf() вместо константы-значения. ( I82ff5 )
  • Класс PlatformHealthSources.Constants был создан по ошибке. Теперь это исправлено. ( Icb849 )
  • PlatformTimeUpdateNotifier#setReceiver теперь получает Runnable вместо функции Supplier и Executor для уведомления. ( I9d938 )
  • Мы изменили тип параметра в PlatformTimeUpdateNotifier#setReceiver с Callable на Supplier . ( I664bf )
  • CompactChip и TitleChip теперь поддерживают добавление значка. ( I5a01e )

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

  • Обновить сообщения Prop с помощью динамических полей, чтобы вместо них использовать oneof ( I81739 ).
  • Реализация повторного использования установщиков для перегрузок, имеющих установщики ( Ied70c )
  • Правильно записывать отпечатки пальцев в сеттерах, имеющих перегрузки ( I86ed2 ).

Версия 1.0.0-альфа11

7 июня 2023 г.

Выпущен androidx.wear.protolayout:protolayout-*:1.0.0-alpha11 . Версия 1.0.0-alpha11 содержит эти коммиты.

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

  • Мы добавили PlatformDataKey для точности измерения сердечного ритма. ( I7f9b8 )

Изменения API

  • Переименуйте StateBuilders#getIdToValueMapping в getKeyToValueMapping и измените тип возвращаемого значения на Map<<AppDataKey<?>,DynamicDataValue> . ( Iaa7ae )
  • Сделайте StateStore последним классом ( I408ca ).
  • Интерфейс TimeGateway был заменен на PlatformTimeUpdateNotifier в библиотеке protolayout-expression-pipeline которая обеспечивает желаемую частоту обновления данных времени. ( I60869 )
  • Переименуйте register / unregisterForData в PlatformDataProvider , чтобы set / clearReceiver ( I14b02 ).
  • В тексте материала getExcludeFontPadding был переименован в hasExcludeFontPadding . ( Iea01d )
  • Ко всем компонентам чипа добавлен установщик для идеального совмещения этикеток. Ко всем фишкам теперь применена минимальная цель, которую можно коснуться. ( I8ae92 )
  • LayoutDefaults#BUTTON_MAX_NUMBER переименован в MAX_BUTTONS . ( I84788 )
  • DAILY_DISTANCE переименован в DAILY_DISTANCE_M . ( I4f758 )

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

  • Обновите документацию по типам реквизитов, чтобы уточнить, почему применяется статическое значение. Укажите значение по умолчанию, которое будет использоваться, если статическое значение не указано. ( I155aa )
  • Пространства имен PlatformDataKey должны соответствовать именованию в стиле Java. ( I47bda )

Версия 1.0.0-альфа10

24 мая 2023 г.

Выпущен androidx.wear.protolayout:protolayout-*:1.0.0-alpha10 . Версия 1.0.0-alpha10 содержит эти коммиты.

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

  • Добавьте AppDataKey для доступа к состоянию отправки приложения; Добавьте PlatformDataKey для доступа к данным платформы; Добавьте поддержку пространства имен в StateStore . ( I7985e )
  • Поддержка операций Equal и NotEqual для DynamicBool . ( I6a0c1 )

Изменения API

  • Класс FontStyles теперь финальный ( Iaa2ea ).
  • LayoutElementBuilders#FontStyles устарел. Используйте androidx.wear.protolayout.Typography или создайте свой собственный FontStyle . ( Ic929b )
  • Скрыть вложенный интерфейс Action#Builder из интерфейса Action . Реализации Builder уже предоставляются классами LoadAction и LaunchAction . ( I1d70c )
  • Разрешить использование DynamicFloat с FloatProp . Обратите внимание, что FloatProp не требует ограничений макета, поскольку он не используется в качестве свойства изменения макета. ( I286ac )
  • Действия LoalAction и SetStateAction удалены, поскольку они еще не поддерживались. ( I5d6a6 )
  • Добавлена поддержка формата ARGB_8888 для встроенных ресурсов изображений. ( I8a07c )
  • Переименуйте StateEntryValue в DynamicDataValue и обновите APIS состояния, чтобы использовать DynamicDataKey ( If1c01 ).
  • Мы ограничиваем количество записей, разрешенных в StateStore , чтобы гарантировать, что использование памяти и время обновления состояния хорошо сдерживаются и контролируются для каждого экземпляра StateStore . В результате разработчику необходимо убедиться, что у него не более MAX_STATE_ENTRY_COUNT записей на карте, иначе он получит исключение IllegalStateException при создании или обновлении StateStore . ( Ибадб3 )
  • Скройте классы OnLoadTrigger и OnConditionMetTrigger и переименуйте setTrigger в setCondition для OnConditionMetTrigger . ( Ibf629 )
  • По соображениям производительности и совместимости средства визуализации ProtoLayout не поддерживают полный набор функций ресурсов AnimatedVectorDrawable . Мы помечаем эти API как экспериментальные, пока не определим поддерживаемый набор. ( Ic6daf )
  • Добавлены динамические типы ежедневного расстояния, ежедневных калорий и ежедневных минимальных значений. Ключи для источников работоспособности платформы теперь находятся в разделе PlatformHealthSources.Keys ( Ib7637 ).
  • Метод Easing.cubicBezier заменяет CubicBezierEasing.Builder . При этом класс EasingFunction удаляется, и константы замедления из этого класса теперь доступны напрямую из интерфейса Easing . Кроме того, setInfiniteRepeatable заменяется на INFINITE_REPEATABLE_WITH_RESTART и INFINITE_REPEATABLE_WITH_REVERSE ( Ib41e7 ).
  • Внедрите PlatformDataProvider , чтобы предоставлять информацию о частоте пульса и шагах за день. Интерфейс SensorGateway удален из общедоступного API. ( I55b84 )
  • Добавьте PlatformDataProvider и обновите StateStore для регистрации в PlatformDataProvider , когда поддерживаемый ключ поставщика требуется узлу из конвейера выражений. ( Ib616a )
  • SensorGateway больше не является Closeable , поскольку он больше не поддерживает какое-либо состояние. ( I6b4f7 )
  • Разрешить использование FloatProp с DynamicFloat для прогресса в CircularProgressIndicator . Это поддерживается для средств визуализации, поддерживающих версию 1.2. Старые средства визуализации будут использовать staticValue если оно указано, в противном случае — 0 ( I0d91b ).
  • Константы MultiButtonLayout были преобразованы в класс LayoutDefaults.MultiButtonLayoutDefaults , который теперь содержит константы для размеров кнопок в зависимости от количества кнопок в макете. ( I13973 )
  • Поддержка использования StringProp с DynamicString в тексте материала. Это поддерживается для средств визуализации, поддерживающих версию 1.2. Старые средства визуализации будут использовать предоставленное статическое значение. Обновите тип возвращаемого значения Text#getText со String на StringProp . ( I7275b )

Версия 1.0.0-альфа09

10 мая 2023 г.

Выпущен androidx.wear.protolayout:protolayout-*:1.0.0-alpha09 . Версия 1.0.0-alpha09 содержит эти коммиты.

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

  • Мы добавили экспериментальный элемент макета расширения. Обратите внимание, что это нельзя использовать по умолчанию и требуется расширение средства визуализации, способное понимать элемент макета. ( I6581d )
  • Добавлена поддержка StrokeCap для ArcLine . ( I94951 )
  • Добавлена поддержка операции «Условно-мгновенный». ( I489a7 )
  • Добавлена поддержка операции условной продолжительности. ( Iab469 )
  • Добавлена поддержка создания продолжительности из секунд. ( Ib5fa1 )

Изменения API

  • Методы enable/disablePlatformSource были удалены из DynamicTypeEvaluator . Ответственность за обновления должна нести вызывающая сторона. ( I78c6d )
  • Разрешить ограничение размера связанных типов данных. ( Ie2966 )
  • Добавьте поддержку описания динамического контента в protolayout-material . ( I62c8e )
  • Используйте long и @IntRange для продолжительности и задержки в AnimationParameters. ( I388b6 )

Версия 1.0.0-альфа08

19 апреля 2023 г.

Выпущен androidx.wear.protolayout:protolayout-*:1.0.0-alpha08 . Версия 1.0.0-alpha08 содержит эти коммиты.

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

  • AndroidTextStyle был добавлен в LayoutElementBuilders . ( I8d967 )
  • Мы добавили поддержку настройки исключения заполнения шрифта в тексте материала ProtoLayout . ( I17f5d )
  • ARGB_8888 теперь поддерживается для встроенных изображений. ( I18c1e )
  • DynamicColor теперь поддерживает операцию onCondition . ( I10927 )

Изменения API

  • Поддержка пользовательской продолжительности обратной анимации ( I3251f ).
  • Мы добавили модификатор SemanticDescription . Кроме того, ContentDescription не является привязываемым. ( I3f1d )
  • Метод DynamicBool.isFalse() теперь заменен на DynamicBool.negate() , а метод DynamicBool.isTrue() удален. Кроме того, значения NaN DynamicFloat и сужение DynamicInt32 до DynamicFloat теперь выдают недопустимый динамический результат. ( I6ac1e )
  • Средства форматирования целых чисел и чисел с плавающей запятой теперь используют шаблон Builder. ( Ieb213 )

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

  • Резервное статическое значение было удалено из анимируемых полей. ( Ifcb01 )
  • DynamicTypeValueReceiver#onPreUpdate удален. ( I2dc35 )
  • Длина строк в динамических выражениях теперь ограничена. ( I4c93 )
  • Зависимости градиента теперь правильно устанавливаются на api вместо implementation , когда это необходимо. ( I40503 )

Версия 1.0.0-альфа07

5 апреля 2023 г.

Выпущен androidx.wear.protolayout:protolayout-*:1.0.0-alpha07 . Версия 1.0.0-alpha07 содержит эти коммиты.

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

  • Добавьте поддержку динамических значений в StringProp ( I04342 ).
  • Отметить привязываемые элементы макета ( Ia110b )

Изменения API

  • sensorGateway#registerSensorGatewayConsumer принимает тип данных в качестве параметра, а не метода в Consumer. ( Icf314 )
  • ObservableStateStore был переименован в StateStore . ( Ieb0e2 )
  • Добавлен DynamicTypeEvaluator.Builder вместо аргументов конструктора, чтобы разрешить использование дополнительных аргументов, включая ObservableStateStore , который теперь по умолчанию имеет пустое хранилище. ( I6f832 )
  • Переработан порядок параметров в DynamicTypeEvaluator . ( Ic1ba4 )

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

  • Правильно распространять сигналы от источников датчиков платформы на нижестоящие узлы ( I5a922 ).

Версия 1.0.0-альфа06

22 марта 2023 г.

Выпущен androidx.wear.protolayout:protolayout-*:1.0.0-alpha06 . Версия 1.0.0-alpha06 содержит эти коммиты.

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

  • Мы добавили экспериментальный API для использования частоты пульса и ежедневных шагов в динамических выражениях ( Ifd711 ).
  • Мы добавили поддержку обратной и прямой задержки для анимации. ( Ic25f7 )
  • Мы добавили поддержку DynamicColor для границ и фона.
  • Мы добавили поддержку динамических значений для типов в DimensionBuilder
  • Верстка и компоненты из tiles-material переносятся в protolayout-material

Изменения API

  • LoadActionListener добавлен в ProtoLayoutViewInstance . ( Если7806 )

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

  • Добавлен FloatNodesTest ( Id7281 ).
  • Исправлен сбой средства рендеринга при невозможности загрузить структурированное растровое изображение.

Версия 1.0.0-альфа05

8 марта 2023 г.

Выпущен androidx.wear.protolayout:protolayout-*:1.0.0-alpha05 . Версия 1.0.0-alpha05 содержит эти коммиты.

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

  • Мы добавили экспериментальную анимацию «обновления контента» в объект Modifiers . Эта анимация срабатывает всякий раз, когда элемент (с этим модификатором) или один из его дочерних элементов изменяется во время обновления макета. ( bd03e5d )

Изменения API

  • Мы добавили forwardRepeatDelayMillis reverseRepeatDelayMillis в Repeatable . Мы также переименовали delayMillis в AnimationSpec в startDelayMillis ( Ifb266 ).
  • Методы DynamicTypeEvaluator.bind теперь принимают Executor. ( I346ab )
  • Мы добавили метод startEvaluation в BoundDynamicType , чтобы запускать оценку после привязки динамического типа. ( я19908 )

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

  • Объект Animator будет повторно использоваться для последующих анимаций одного элемента. ( Ia3be9 )

Версия 1.0.0-альфа04

22 февраля 2023 г.

Выпущен androidx.wear.protolayout:protolayout-*:1.0.0-alpha04 . Версия 1.0.0-alpha04 содержит эти коммиты.

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

  • ObservableStateStore теперь также информирует слушателей об удалении ключа.
  • Мы добавили версию схемы рендеринга и масштаб шрифта в DeviceParameters (которые можно использовать для условного создания макетов в зависимости от различных версий и настроек шрифта).
  • Мы добавили поддержку анимации значений DynamicInt32 ( I05485 ).
  • Мы добавили триггеры OnLoad и OnConditionalMet . Их можно использовать для запуска анимации, поддерживающей триггер.
  • Мы добавили вес макета для расширенных размеров и минимальный размер для завернутых размеров.
  • Мы добавили динамические типы продолжительности и мгновенного действия. Их можно использовать для представления момента времени или продолжительности в динамическом выражении.
  • Мы добавили поддержку AnimatedVectorDrawable и SeekableAnimatedVectorDrawable в качестве ресурсов макета.

Изменения API

  • Для данных датчика требуется API 29+. ( I8099e )
  • Мы добавили два вспомогательных метода launchAction (для запуска действий).

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

  • Переименуйте set/getSpec в set/getAnimationSpec в анимации Tiles ( I3d74b ).

Версия 1.0.0-альфа03

8 февраля 2023 г.

Выпущен androidx.wear.protolayout:protolayout-*:1.0.0-alpha03 . Версия 1.0.0-alpha03 содержит эти коммиты.

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

  • Мы добавили toByteArray() и fromByteArray() к динамическим типам в библиотеке protolayout-express.
  • Мы добавили toString() к динамическим типам в библиотеке выражений protolayout.
  • Мы добавили поддержку оценки для динамических типов. Класс DynamicTypeEvaluator из библиотеки protolayout-expression-pipeline можно использовать для оценки (и получения обновленных значений) ранее созданного динамического типа ( DynamicString , DynamicFloat ,…).
  • Когда анимацию невозможно воспроизвести (либо потому, что она отключена оценщиком, либо из-за того, что количество запущенных анимаций достигло установленного предела), для замены анимации будут использоваться статические значения, установленные в анимируемом узле.

Версия 1.0.0-альфа02

25 января 2023 г.

Выпущены androidx.wear.protolayout:protolayout:1.0.0-alpha02 , androidx.wear.protolayout:protolayout-expression:1.0.0-alpha02 и androidx.wear.protolayout:protolayout-proto:1.0.0-alpha02 . Версия 1.0.0-alpha02 содержит эти коммиты.

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

  • Конструкторы макетов из androidx.wear.tiles:tiles переходят в androidx.wear.protolayout:protolayout . Те, что в androidx.wear.tiles:tiles будут устаревшими в одном из следующих альфа-выпусков.

Версия 1.0.0-альфа01

11 января 2023 г.

Выпущены androidx.wear.protolayout:protolayout-expression:1.0.0-alpha01 и androidx.wear.protolayout:protolayout-proto:1.0.0-alpha01 . Версия 1.0.0-alpha01 содержит эти коммиты.

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

  • В этом выпуске представлена ​​новая библиотека ProtoLayout Expression для создания выражений из динамических переменных.