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

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

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

Чтобы добавить зависимость от 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-alpha04"

    // Use to implement support for Wear ProtoLayout
    implementation "androidx.wear.protolayout:protolayout:1.3.0-alpha04"

    // Use to utilize components and layouts with Material design in your ProtoLayout
    implementation "androidx.wear.protolayout:protolayout-material:1.3.0-alpha04"
}

Котлин

dependencies {
    // Use to implement support for Wear ProtoLayout Expressions
    implementation("androidx.wear.protolayout:protolayout-expression:1.3.0-alpha04")

    // Use to implement support for Wear ProtoLayout
    implementation("androidx.wear.protolayout:protolayout:1.3.0-alpha04")

    // Use to utilize components and layouts with Material design in your ProtoLayout
    implementation("androidx.wear.protolayout:protolayout-material:1.3.0-alpha04")
}

Дополнительные сведения о зависимостях см. в разделе Добавление зависимостей сборки .

Обратная связь

Ваши отзывы помогают сделать Jetpack лучше. Дайте нам знать, если вы обнаружите новые проблемы или у вас есть идеи по улучшению этой библиотеки. Пожалуйста, ознакомьтесь с существующими проблемами в этой библиотеке, прежде чем создавать новую. Вы можете добавить свой голос к существующей проблеме, нажав кнопку со звездочкой.

Создать новую задачу

Дополнительную информацию см. в документации по системе отслеживания проблем .

Версия 1.3

Версия 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 )
  • Мы добавили защиту от сбоя при доступе к глобальной настройке уменьшения движения, которая срабатывала на некоторых платформах, где этот параметр не был предусмотрен. ( I01e2c )

Изменения API

  • addKeyToValueMapping переименованы в addToStateMap , а методы DynamicDataMap.put удалены, поскольку они были избыточными. ( Ibe9dd )
  • Material3 Typography теперь поддерживает переменную ось округлости для системных шрифтов, которые поддерживают эту ось. ProtoLayout FontSetting поддерживает ось округлости для шрифтов, которые поддерживают эту ось. ( 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 для установки различных триггеров для анимации Лотти. Кроме того, добавлен API для триггеров, срабатывающих при отображении макета ( I8272d ).
  • Добавлены модификаторы border , visibility и opacity . ( I6d3dd )
  • Добавлена ​​кнопка аватара в компонент ProtoLayout Material3. ( Idb5ae )
  • Теперь мы разрешаем настраивать поля (боковые и в некоторых случаях нижние) в primaryLayout Material3. ( 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 ).
  • Добавлен компонент textButton ProtoLayout Material3 . ( Ид680d )
  • Добавьте компонент iconButton ProtoLayout Material3. ( Ica3f0 )
  • Добавлен компонент контейнера кнопок ProtoLayout Material3. ( I17a38 )
  • Добавлена ​​поддержка семантических модификаторов Chainable в protolayout-material3 ( I4af62 ).
  • Добавлен один сегмент ProtoLayout Material3 CircularProgressIndicator ( I2c8a2 ).
  • Добавлены padding , модификаторы metadata ( I8720a ).
  • Добавлены модификаторы background , clip и clickable ( I35478 ).
  • Добавьте LinearGradient в Brush и разрешите его использование в модификаторе фона. ( Ic4dea )
  • Добавьте небольшой размер для appCard и titleCard . ( I91f98 )
  • Добавлен компонент ProtoLayout graphicDataCard . ( I92be7 )
  • Добавлены компоненты ProtoLayout Material3 iconDataCard и textDataCard . ( I4e1e4 )
  • Добавлен компонент appCard ProtoLayout Material3. ( Id4c57 )
  • Абстрагируйте EdgeButtonColors в ButtonColors . ( I83624 )
  • Добавлен компонент titleCard ProtoLayout Material3. ( 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 для поддержки привязываемых строковых полей макета. ( Ида650 )
  • Добавлен компонент контейнера карточек ProtoLayout Material3 . ( Ic985a )

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

  • Эта библиотека теперь использует аннотации NULL NULL JSpecify , которые являются типизированными. Разработчики Kotlin должны использовать следующие аргументы компилятора для обеспечения правильного использования: -Xjspecify-annotations=strict, -Xtype-enhancement-improvements-strict-mode ( 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. ( Если645е )
  • Добавьте в библиотеку тестирования несколько часто используемых средств сопоставления. ( 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 . Обновите свою зависимость от версии 1.3.0-alpha01 androidx.wear.protolayout:protolayout-proto и androidx.wear.protolayout:protolayout-external-protobuf до 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 для лучшей поддержки адаптивного поведения этих макетов на экранах разных размеров и улучшения согласованности плиток.
  • Улучшено масштабирование/немасштабирование текста материала для нелинейного масштабирования шрифта Android 14.
  • Улучшена поддержка направления компоновки RTL для всех дуговых элементов.

Дополнительные изменения

Версия 1.2.0-rc01

24 июля 2024 г.

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

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

  • Мы исправили стандартный чип материала, поэтому его можно использовать в качестве значка только в том случае, если не передана ни одна из основных или вторичных меток. ( Iceef9 ).
  • Документация по макетам материалов была обновлена ​​и теперь включает визуальные эффекты с соответствующей страницы для облегчения понимания макетов. ( I0256a )

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

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 . Эти преобразования можно анимировать с помощью динамических значений.
  • Для всех элементов дуги ( Arc , ArcLine и ArcText ) добавлены параметры setArcDirection с параметрами Clockwise , CounterClockwise и Normal для лучшей поддержки различных направлений макета (таких как LTR и RTL).
  • Улучшена доступность всех сенсорных объектов за счет расширения области касания любого элемента, использующего модификатор Clickable , до размера не менее 48dp на 48dp .
  • Улучшены PrimaryLayout и EdgeContentLayout путем добавления setResponsiveContentInsetEnabled для лучшей поддержки адаптивного поведения этих макетов на экранах разных размеров и улучшения согласованности плиток. Добавлено предупреждение линтера, предлагающее использовать эти API с быстрым исправлением.
  • Улучшено масштабирование/немасштабирование 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 , включив в него аннотации диапазона, и измените параметр веса на int. ( Ia726c )

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

  • Немасштабируемые тексты в библиотеке материалов теперь корректно работают с нелинейным масштабированием шрифтов 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 , включив в него:
    • настройка функции шрифта, например установка табличного шрифта. ( Если12b7 )
    • настройка варианта шрифта, например установка пользовательской ширины для переменных шрифтов. ( I2b36d )
  • В FontStyle добавлен API семейства шрифтов, позволяющий указать порядок использования семейств шрифтов. ( Iba9f5 )
  • Переименованы константы для высоты пространства между содержимым и вторичной меткой в LayoutDefaults материала, которые изначально имели префикс «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 теперь ожидает значение в конструкторе. ( И76ада )
  • Метод PlatformDataValues.Builder.putAll позволит объединить одно PlatformDataValue с другим. ( I50ba3 )
  • Text#setIsScalable переименован в Text#setScalable . ( Если920е )
  • В Material Text можно указать, использовать ли масштабируемый размер (увеличивается при изменении размера пользовательского шрифта) или нет. ( Ibc849 )
  • Мы добавили возможность установить описание контента в TitleChip . ( I5d21f )
  • Исправлен CompactChip для правильной работы только со значками и обновлен API, чтобы разрешить эту опцию. ( I6589e )

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

  • Исправлена ​​проблема с возможным дублированием данных платформы во время инициализации. ( Iba0fd )
  • Введите новый метод получения в DynamicDataNode для получения стоимости узла. Стоимость используется при получении квоты динамического узла. В настоящее время узлы с фиксированными значениями будут иметь стоимость 0, все остальные узлы будут иметь стоимость 1. ( Ia33e1 ).
  • Удалите логику подсчета из NO_OP_QUOTA_MANAGER . ( Ib50b8 )
  • Мы добавили правило проверки, которое сообщает о предупреждении, когда PrimaryLayout используется без setResponsiveContentInsetEnabled и обеспечивает быстрое исправление. ( I12025 )
  • Существует ограничение на количество узлов динамического выражения. ( Иффае8 )

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

6 марта 2024 г.

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

Новые возможности

  • В элементах ProtoLayout Arc теперь есть возможность добавить к ним ArcDirection ( Clockwise , Counterclockwise or Normal ). Добавление этого поведения в Arc , ArcLine или ArcText исправит их поведение в макетах с письмом справа налево. ( I90699 )
  • EdgeContentLayout был обновлен новым установщиком setResponsiveContentInsetEnabled , чтобы обеспечить лучшее соответствие рекомендациям UX, согласованность в плитках за счет размещения основной метки в фиксированном месте сверху и адаптивной вставки для меток. ( I60175 )
  • Мы добавили PrimaryLayout.setResponsiveContentInsetEnabled , который добавляет адаптивную вставку к основной метке, вторичной метке и нижнему чипу в этом макете, чтобы содержимое не выходило за пределы экрана. ( I0c457 )
  • Добавляет метод для удаления внешних полей из CircularProgressIndicator , чтобы его можно было использовать как компонент меньшего размера. ( I55c06 )

Изменения API

  • Средство рендеринга плиток теперь по умолчанию исключает заполнение шрифтов для всех текстовых элементов без возможности его включения. ( I3e300 )

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

  • Исправлена ​​проблема с выравниванием текста, когда в тексте используются размер эллипса, межбуквенный интервал и выравнивание по центру. ( I716c7 )
  • Добавьте обходной путь для проблемы с рисованием дуги лыжи. ( 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 x 48 точек для удовлетворения требований доступности.
  • Заполнение шрифта по умолчанию отключено и является единственным поведением для всех элементов Text и компонентов Material, содержащих текст.

Дополнительные изменения

Версия 1.1.0-rc01

24 января 2024 г.

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

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

  • PlatformTimeUpdateNotifierImpl устанавливается сразу после включения обновления. ( I77145 )
  • CircularProgressIndicator исправлен для макетов с письмом справа налево. Отныне во всех случаях он будет идти по часовой стрелке. ( I95ee3 )
  • Добавьте обходной путь для проблемы с рисованием дуги лыжи. ( I08f09 )

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

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 . INFINITE_REPEATABLE_WITH_REVERSE INFINITE_REPEATABLE_WITH_RESTART setInfiniteRepeatable
  • Реализуйте PlatformDataProvider для обеспечения частоты сердечных сокращений и ежедневных шагов. Интерфейс SensorGateway удаляется из общественного API. ( I55b84 )
  • Добавьте PlatformDataProvider и обновите StateStore , чтобы зарегистрироваться в PlatformDataProvider , когда поддерживаемый ключ поставщика требуется Node из Pipeline Expression. ( 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-Alpha09

10 мая 2023 года

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

Новые возможности

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

API меняется

  • enable/disablePlatformSource методы Platformsource были удалены из DynamicTypeEvaluator . Абонент должен нести ответственность за обновления. ( I78c6d )
  • Разрешить ограничить размер связанных типов данных. ( IE2966 )
  • Добавьте поддержку для динамического описания контента в protolayout-material . ( I62c8e )
  • Используйте Long и @IntRange для продолжительности и задержки в анимации. ( I388b6 )

Версия 1.0.0-Alpha08

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 )
  • Форматиры Int и Float теперь используют шаблон застройщика. ( IEB213 )

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

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

Версия 1.0.0-Alpha07

5 апреля 2023 года

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

Новые возможности

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

API меняется

  • sensorGateway#registerSensorGatewayConsumer принимает тип данных в качестве параметра вместо метода в потребителе. ( ICF314 )
  • ObservableStateStore был переименован в StateStore . ( IEB0E2 )
  • Добавлен DynamicTypeEvaluator.Builder вместо аргументов конструктора, чтобы разрешить более необязательные аргументы, включая ObservableStateStore , который теперь по умолчанию в пустой магазин. ( I6f832 )
  • Рефакторированный порядок параметров в DynamicTypeEvaluator . ( IC1BA4 )

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

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

Версия 1.0.0-Alpha06

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 . ( IF7806 )

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

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

Версия 1.0.0-Alpha05

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 Методы теперь принимают исполнителя. ( I346ab )
  • Мы добавили метод startEvaluation в BoundDynamicType , чтобы запустить оценку после того, как динамический тип связан. ( I19908 )

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

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

Версия 1.0.0-Alpha04

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-Alpha03

8 февраля 2023 года

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

Новые возможности

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

Версия 1.0.0-Alpha02

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-Alpha01

11 января 2023 года

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

Новые возможности

  • Этот релиз представляет новую библиотеку «выражение протоалаута» для создания выражений из динамических переменных.
,

Носить протоалаут

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

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

Чтобы добавить зависимость от износа, вы должны добавить в свой проект репозиторий Google Maven. Прочитайте репозиторий Google Maven для получения дополнительной информации.

Добавьте зависимости для артефактов, которые вам нужны в файле build.gradle для вашего приложения или модуля:

классный

dependencies {
    // Use to implement support for Wear ProtoLayout Expressions
    implementation "androidx.wear.protolayout:protolayout-expression:1.3.0-alpha04"

    // Use to implement support for Wear ProtoLayout
    implementation "androidx.wear.protolayout:protolayout:1.3.0-alpha04"

    // Use to utilize components and layouts with Material design in your ProtoLayout
    implementation "androidx.wear.protolayout:protolayout-material:1.3.0-alpha04"
}

Котлин

dependencies {
    // Use to implement support for Wear ProtoLayout Expressions
    implementation("androidx.wear.protolayout:protolayout-expression:1.3.0-alpha04")

    // Use to implement support for Wear ProtoLayout
    implementation("androidx.wear.protolayout:protolayout:1.3.0-alpha04")

    // Use to utilize components and layouts with Material design in your ProtoLayout
    implementation("androidx.wear.protolayout:protolayout-material:1.3.0-alpha04")
}

Для получения дополнительной информации о зависимостях см. Добавить зависимости от сборки .

Обратная связь

Ваш отзыв помогает сделать JetPack лучше. Дайте нам знать, если вы обнаружите новые проблемы или у вас есть идеи для улучшения этой библиотеки. Пожалуйста, посмотрите на существующие проблемы в этой библиотеке, прежде чем создать новую. Вы можете добавить свой голос к существующей проблеме, нажав кнопку Star.

Создать новую проблему

Смотрите документацию по трекеру проблемы для получения дополнительной информации.

Версия 1.3

Версия 1.3.0-Alpha09

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 Tiles Renderer. ( I88190 )

Версия 1.3.0-Alpha08

12 февраля 2025 г.

androidx.wear.protolayout:protolayout-*:1.3.0-alpha08 выпускается. Версия 1.3.0-Alpha08 содержит эти коммиты .

Новые возможности

  • Добавить параметр списка FontSetting для материала3 текста. ( IC102D )
  • Добавлен класс DynamicDataMap , который теперь поддерживает StateBuilder для лучшего типа безопасного API Kotlin для APP ( I012BA )
  • Добавлены заводские методы, такие как intAppDataKey для более легкого создания объектов AppDataKey ( ICEA2A )
  • DynamicDataValue теперь имеет метод hasValueOfType(Class<?>) В дополнение к методам hasInt/hasColor/ .... ( i4f7a6 )
  • Мы добавили errorDim в Material3 Protolayout ColorScheme , для ошибок с высоким приоритетом или экстренных действий, таких как оповещения о безопасности. ( IA17BB )
  • Мы добавили охрану от сбоя при доступе к глобальной настройке восстановления, которая была запускается на некоторых платформах, где эта настройка не была предоставлена. ( I01e2c )

API меняется

  • addKeyToValueMapping переименовано в addToStateMap , а методы DynamicDataMap.put удаляются, поскольку они были избыточными. ( Ibe9dd )
  • Материал3 Типография теперь поддерживает ось переменной округлости для системных шрифтов, которые поддерживают эту ось. ProtoLayout FontSetting поддерживает ось округлости для шрифтов, которые поддерживают эту ось. ( I33eb5 )
  • Переименовано в multilineAlignment до выравнивания в методе текста Material3. ( I2b66b )
  • Обновите индикатор круговых прогресса, чтобы быть типом поле, также укажите mainContent в constructGraphic , чтобы быть типом блока ( i5a3dc )
  • Лучшая поддержка для использования индикатора круговых прогрессов на графике ( I039DB )

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

  • Разрешить динамические значения в ColorStop , а также для угла запуска/конца в SweepGradient . ( I0146d )
  • Документы исправляют. ( I4a63a )
  • Обновленный материал 3 компоненты ( graphicCard и avatarButton ) для обеспечения запасного обстановки, когда размер расширения weight не поддерживается (например, ниже API 33). Обновленный текстовый компонент, чтобы задержать TEXT_OVERFLOW_ELLIPSIZE_END , когда TEXT_OVERFLOW_ELLIPSIZE не поддерживается рендерером. ( I19e2c )
  • Обновление DOCS для PrimaryLayoutMargins . ( IBAF7B )

Версия 1.3.0-Alpha07

29 января 2025 г.

androidx.wear.protolayout:protolayout-*:1.3.0-alpha07 выпускается. Версия 1.3.0-Alpha07 содержит эти коммиты .

Новые возможности

  • Добавлена ​​опция API, чтобы установить различные триггеры для Lottie Animations. Кроме того, добавлен API для триггеров, выпущенных при видении макета ( i8272d )
  • Добавлены border , visibility и модификаторы opacity . ( I6d3dd )
  • Добавлена ​​кнопка Avatar к компоненту ProtoLayout Material3. ( Idb5ae )
  • Сейчас мы позволяем настраивать маржу (сторона и в некоторых случаях внизу) настраивать в Material3 primaryLayout . ( IB22F6 )
  • Добавьте сегментированный вариант индикатора кругового прогресса. ( I6a648 )
  • Добавлен компонент компактной кнопки в ProtoLayout Material3. ( IA3C5C )
  • Добавлена ​​кнопка формы таблеток и компоненты кнопки изображения в ProtoLayout Material3. ( IFB88A )

API меняется

  • LayoutModfier.foldIn теперь называется foldRight чтобы лучше отражать его ожидаемое поведение ( IDF242 )
  • VisibleOnce Trigger теперь экспериментальный. ( IB2D26 )
  • withOpacity от общедоступного API, так как есть альтернатива графической библиотеки. ( I030C2 )
  • Переименованные в методах верхнего уровня в LayoutString.kt и LayoutColor.kt чтобы иметь дружеские имена Java. ( I7aff0 )
  • Удалены непротоотативные типографы в материале3. ( Idd9ae )
  • Добавьте цвет суффикса в поля в классах *Colors в Material3. ( I2d114 )

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

  • Добавить EdgeButton Swarkback реализацию для более старого рендеринга без асимметричных углах поддержки. ( I63364 )
  • Добавьте резервную реализацию индикатора кругового прогресса со старым рендерером. ( I0f134 )

Версия 1.3.0-Alpha06

15 января 2025 г.

androidx.wear.protolayout:protolayout-*:1.3.0-alpha06 выпускается. Версия 1.3.0-Alpha06 содержит эти коммиты .

Новые возможности

  • LayoutColor для поддержки как статических, так и динамических типов цвета ( i4c89b )
  • Добавлено ProtoLayout Material3 Textbutton Component. ( Id680d )
  • Добавить iconButton ProtoLayout Material3 Компонент. ( ICA3F0 )
  • Добавлено ProtoLayout Material3 Container Component. ( I17A38 )
  • Добавлена ​​поддержка цепных семантических модификаторов для ProtoLayout-Material3 ( i4AF62 )
  • Добавлено ProtoLayout Material3 Одно сегмент CircularProgressIndicator ( I2C8A2 )
  • Добавленные padding , модификаторы metadata ( i8720a )
  • Добавлено background модификаторы, clip и clickable ( i35478 )
  • Добавьте LinearGradient , чтобы почистить и позволить его использовать в фоновом модификаторе. ( IC4DEA )
  • Добавьте небольшой размер для AppCard и titleCard . ( I91f98 )
  • Добавлено ProtoLayout Material3 Компонент graphicDataCard . ( I92be7 )
  • Добавлено ProtoLayout Material3 iconDataCard и компоненты textDataCard . ( I4e1e4 )
  • Добавлено ProtoLayout Material3 Компонент appCard . ( ID4C57 )
  • Аннотация EdgeButtonColors к ButtonColors . ( 183624 )
  • Добавлено ProtoLayout Material3 Компонент titleCard . ( I2dc72 )

API меняется

  • ProtoLayout Material3 API теперь принимает LayoutString для поддержки как статических, так и динамических текстов. ( I9c24a )

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

  • Добавьте внедрение рендеринга для надувания DashedArcLine ( I0C700 )
  • Изменение рендеринга для разрешения ArcSpacer принять длину DP. ( I1437b )

Версия 1.3.0-Alpha05

11 декабря 2024 г.

androidx.wear.protolayout:protolayout-*:1.3.0-alpha05 выпускается. Версия 1.3.0-Alpha05 содержит эти коммиты .

Новые возможности

  • Добавлены LayoutString для поддержки строковых полей для привязки. ( IDA650 )
  • Добавлено ProtoLayout Material3 CARD Container Component. ( IC985A )

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

  • В этой библиотеке теперь используются аннотации jspecify Nullness , которые являются типовым использованием. Разработчики Kotlin должны использовать следующие аргументы компилятора для обеспечения правильного использования: -Xjspecify-annotations=strict, -Xtype-enhancement-improvements-strict-mode ( id1f9b , b/326456246 )

Версия 1.3.0-Alpha04

13 ноября 2024 г.

androidx.wear.protolayout:protolayout-*:1.3.0-alpha04 выпускается. Версия 1.3.0-Alpha04 содержит эти коммиты .

Новые возможности

  • Обновленная форма Material3 - это класс с полями, которые содержит фактическое угловое значение, так же, как и в износ. ( IED8CD )
  • Обновленные материалы3 цвета, включающие концепцию ColorScheme , так же, как в Wear Compose. ( If645e )
  • Добавьте несколько обычно используемых сочетания в библиотеку тестирования. ( IE5CEC )

Версия 1.3.0-Alpha03

30 октября 2024 г.

androidx.wear.protolayout:protolayout-*:1.3.0-alpha03 . Версия 1.3.0-Alpha03 содержит эти коммиты .

Новые возможности

  • Добавить LayoutElementAssertionsProvider , LayoutElementAssertion и LayoutElementMatcher в библиотеку тестирования ( ID1110 )

Версия 1.3.0-Alpha02

16 октября 2024 года

androidx.wear.protolayout:protolayout-*:1.3.0-alpha02 выпускается. Версия 1.3.0-Alpha02 содержит эти коммиты .

Новые возможности

  • Первоначальная версия материала 3 библиотеки. Включает text , edgeButton , buttonGroup и primaryLayout Components.

Исправления безопасности

  • На момент изменения Androidx компилируется против Protobuf 4.28.2, чтобы решить CVE-2024-7254 . Обновите свою зависимость от версии 1.3.0-Alpha01 androidx.wear.protolayout:protolayout-proto и androidx.wear.protolayout:protolayout-external-protobuf до 1.3.0-ALPHA02, чтобы учесть риск уязвимости.

Внешний вклад

Версия 1.3.0-Alpha01

2 октября 2024 г.

androidx.wear.protolayout:protolayout-*:1.3.0-alpha01 выпускается. Версия 1.3.0-Alpha01 содержит эти коммиты .

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

  • Уточнил, что доступность семейных имен Font Roboto и Roboto Flex зависит от устройств. ( I193be )
  • Включено семейство roboto flex font в рендерере Androidx Tile. ( 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 . Обновите свою зависимость от версии 1.2.0 of androidx.wear.protolayout:protolayout-proto и androidx.wear.protolayout:protolayout-external-protobuf до 1.2.1, чтобы устранить риск уязвимости.

Версия 1.2.0

7 августа 2024 года

androidx.wear.protolayout:protolayout-*:1.2.0 выпускается. Версия 1.2.0 содержит. эти коммиты .

Важные изменения с 1.1.0

  • FontStyle был обновлен, чтобы иметь дополнительную поддержку шрифтов для переменных оси и лучшего API выбора шрифтов для поддержки предстоящих гибких шрифтов.
  • Поддержка дополнительных модификаторов:
    • Модификатор преобразования предлагает перевод, вращение и масштабирование с помощью или без анимации.
    • Указание различных значений (горизонтальные и вертикальные) для каждого углового радиуса.
  • Улучшенная доступность всех сенсорных целей, расширяя область нагрузки любого элемента, который использует кликабельный модификатор, который составляет не менее 48dp на 48dp .
  • Улучшение PrimaryLayout и EdgeContentLayout , добавив setResponsiveContentInsetEnabled , чтобы лучше поддерживать отзывчивое поведение этих макетов в разных размерах экрана и улучшить согласованность плиток.
  • Улучшение масштабирования/некачественного текста материала для нелинейного масштабирования шрифтов Android 14.
  • Улучшенная поддержка направления макета RTL на всех элементах дуги.

Дополнительные изменения

Версия 1.2.0-RC01

24 июля 2024 года

androidx.wear.protolayout:protolayout-*:1.2.0-rc01 выпускается. Версия 1.2.0-RC01 содержит эти коммиты .

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

  • Мы исправили стандартный чип материала, чтобы его можно было использовать в качестве значка, только если не пройден ни один из первичных или вторичных метки. ( ICEEF9 )
  • Документация для макетов материала была обновлена, чтобы включить визуальные эффекты со соответствующей страницы для облегчения понимания макетов. ( I0256A )

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

10 июля 2024 года

androidx.wear.protolayout:protolayout-*:1.2.0-beta01 . Версия 1.2.0-бета01 содержит эти коммиты .

Новые возможности

Выпуск 1.2.0-бета-бита01 износа показывает, что этот выпуск библиотеки завершен, а API заблокирован (за исключением случаев, когда отмечается как экспериментальный). Wear ProtoLayout 1.2 включает в себя следующие новые функции и API:

  • FontStyle был обновлен, чтобы получить дополнительную поддержку шрифтов следующим образом:
    • Установка различных настройки вариации шрифта, таких как FontSetting.weight и FontSetting.width
    • Установка одинаковой ширины для всех числовых символов - табличные цифры (настройка функции шрифта FontSetting.tnum )
    • Улучшенные API -интерфейсы выбора шрифтов для поддержки предстоящих гибких шрифтов, указав использование предпочтительных фамилий для шрифтов.
  • Расширенный Corner модификатор, чтобы поддержать определение каждого CornerRadius с отдельными горизонтальными и вертикальными значениями, чтобы позволить строительные элементы с асимметричными углами.
  • Добавлен новый модификатор Transformation , предлагающий перевод, вращение и масштабирование LayoutElement . Эти преобразования могут быть анимированы с помощью динамических значений.
  • Добавлены setArcDirection с Clockwise , CounterClockwise и Normal параметрами для всех элементов дуги ( Arc , ArcLine и ArcText ) для лучшей поддержки в разных направлениях макета (например, LTR и RTL).
  • Улучшенная доступность всех сенсорных целей, расширяя область нагрузки любого элемента, который использует Clickable модификатор, который составляет не менее 48dp на 48dp .
  • Улучшение PrimaryLayout и EdgeContentLayout , добавив setResponsiveContentInsetEnabled , чтобы лучше поддерживать отзывчивое поведение этих макетов в разных размерах экрана и улучшить согласованность плиток. Добавлено предупреждение Linter, чтобы предложить использование этих API с быстрым решением.
  • Улучшение масштабирования/некачественного Text материала для нелинейного масштабирования шрифтов Android 14.

API меняется

  • Семейство по умолчанию по умолчанию ( DEFAULT_SYSTEM_FONT ) удаляется, так как это подразумевается, не используя API preferredFontFamilies . ( I39dab )
  • Параметр, переданный в FontSetting.width должен быть положительной. ( I1266f )

Версия 1.2.0-Alpha05

26 июня 2024 г.

androidx.wear.protolayout:protolayout-*:1.2.0-alpha05 выпускается. Версия 1.2.0-Alpha05 содержит эти коммиты .

Новые возможности

  • Добавьте метод hasText в Material.CompactChip , чтобы проверить, был ли установлен текстовый содержимое. ( I6e8fc )

API меняется

  • Const FontFamily перемещается, чтобы быть в FontStyle , а не в классе. ( I06ced )
  • Обновление FontSetting.weight и FontSetting.width API для включения аннотаций диапазона и параметра изменения веса, чтобы быть int. ( Ia726c )

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

  • Немасштабируемые тексты в библиотеке материалов теперь работают правильно с нелинейным масштабированием шрифтов Android 14. ( I6601e )

Версия 1.2.0-Alpha04

29 мая 2024 г.

androidx.wear.protolayout:protolayout-*:1.2.0-alpha04 выпускается. Версия 1.2.0-Alpha04 содержит эти коммиты .

API меняется

  • Добавлены API асимметричных углов, чтобы иметь возможность отдельно указывать радиус каждого углу с 2 значениями. ( ICBD69 )
  • Расширил API FontSetting , чтобы включить:
    • Настройка функции шрифта, такая как настройка шрифта на таблицу. ( If12b7 )
    • Настройка изменения шрифта, такая как настройка пользовательской ширины для переменных шрифтов. ( I2b36d )
  • Добавлены API Font Family API в FontStyle , чтобы позволить указать список заказов, из которого следует использовать семейства шрифтов. ( IBA9F5 )
  • Переименованные константы для высоты пространства между контентом и вторичной меткой в ​​Mabority LayoutDefaults , которые первоначально были предварительно профиксированы с помощью «контента края», чтобы быть более общими, поскольку их можно применить как к PrimaryLayout , так и EdgeContentLayout . ( I4dc32 )

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

  • Переименовано в именование для переменных осей шрифтов от axisName до axisTag . ( I02ba3 )

Версия 1.2.0-Alpha03

14 мая 2024 года

androidx.wear.protolayout:protolayout-*:1.2.0-alpha03 выпускается. Версия 1.2.0-Alpha03 содержит эти коммиты .

Новые возможности

  • Добавлен API для установки пользовательских значений веса для FontStyle . ( I7390a )

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

  • Исправьте сбой в getTouchDelegateInfo из -за пустой карты цели. ( I2accf )

Версия 1.2.0-Alpha02

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 )
  • Текст материала может установить, использовать ли масштабируемый размер (растет при изменении размера шрифта пользователя) или нет. ( IBC849 )
  • Мы добавили опцию, чтобы установить описание контента в TitleChip . ( I5d21f )
  • Исправлено CompactChip для правильной работы только с значком и обновите API, чтобы разрешить эту опцию. ( I6589e )

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

  • Исправлена ​​проблема потенциальных дубликатов данных платформы во время инициализации. ( Iba0fd )
  • Представьте новый Getter в DynamicDataNode , чтобы получить стоимость узла. Стоимость используется при получении квоты динамического узла. В настоящее время узлы с фиксированными значениями будут иметь стоимость 0, все остальные узлы будут иметь стоимость 1 ( IA33E1 )
  • Удалите логику подсчета из NO_OP_QUOTA_MANAGER . ( IB50B8 )
  • Мы добавили правило Lint, чтобы сообщить о предупреждении, когда PrimaryLayout используется без setResponsiveContentInsetEnabled и обеспечения быстрого решения. ( I12025 )
  • Существует предел ряда узлов динамического выражения. ( Iffae8 )

Версия 1.2.0-Alpha01

6 марта 2024 года

androidx.wear.protolayout:protolayout-*:1.2.0-alpha01 выпускается. Версия 1.2.0-Alpha01 содержит эти коммиты .

Новые возможности

  • Элементы ProtoLayout Arc теперь имеют возможность добавить к нему ArcDirection ( Clockwise , Counterclockwise Normal ). Добавление такого поведения в Arc , ArcLine или ArcText исправят свое поведение на макетах RTL. ( I90699 )
  • EdgeContentLayout был обновлен с помощью нового сеттера setResponsiveContentInsetEnabled для достижения лучшего выравнивания с руководящими принципами UX, последовательности в плитках путем наличия первичной метки на фиксированном месте на вершине и отзывчивой вставки для меток. ( I60175 )
  • Мы добавили PrimaryLayout.setResponsiveContentInsetEnabled , который добавляет отзывчивый вставка к первичной метке, вторичной метке и нижней чипе в этом макете, чтобы избежать того, что контент выходит с края экрана. ( I0c457 )
  • Добавляет метод для удаления внешних краев из CircularProgressIndicator , чтобы его можно было использовать в качестве меньшего компонента. ( I55c06 )

API меняется

  • Плотный рендеринг теперь исключает заполнение шрифтов по всем текстовым элементам по умолчанию, без возможности включить его. ( I3e300 )

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

  • Исправленная проблема выравнивания текста, когда в тексте используются все, когда EllipSize, расстояние между буквами и центр выравнивания. ( 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, чтобы удовлетворить требования к доступности.
  • Подготовка шрифта отключается по умолчанию и является единственным поведением для всех текстовых элементов и компонентов материала, которые содержат текст.

Дополнительные изменения

Версия 1.1.0-RC01

24 января 2024 года

androidx.wear.protolayout:protolayout-*:1.1.0-rc01 выпускается. Версия 1.1.0-RC01 содержит эти коммиты.

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

  • PlatformTimeUpdateNotifierImpl GTACES сразу после включения обновления. ( I77145 )
  • CircularProgressIndicator был зафиксирован для макетов RTL. С этого момента он пойдет по часовой стрелке во всех случаях. ( I95ee3 )
  • Добавьте обходной путь для проблемы рисования дуги Skia. ( I08F09 )

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

10 января 2024 года

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

Новые возможности

Выпуск 1,1.0-бета-бита01 износого протоалаута указывает, что этот выпуск библиотеки завершен, а 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 теперь поддерживает расширение размеров с дополнительным весом. Для Building ExpandedDimensionProp мы добавили вспомогательный метод DimensionBuilders.weight .
  • Поддержка динамического укрытия и непрерывных элементов макета с Modifier.visible . Это включает в себя наличие динамических значений в BoolProp .
  • Все API -интерфейсы ProtoLayout теперь имеют аннотация требований к схеме и версии, прежде чем вызовать новый API.
  • Каждый элемент, который теперь имеет Clickable имеет свою целевую область, продленную не менее 48x48 в рендерере, чтобы лучше поддерживать требования к доступности.
  • Следуя другим компонентам материала и составлению инициатив, мы теперь отключили подготовку Font по умолчанию по всем Text элементам. Кроме того, AndroidTextStyle и связанные срезы были удалены из публичного API. С следующими исправлениями ошибки:
  • Добавлен сеттер для позиционирования содержимого края в EdgeContentLayout , чтобы он мог быть расположен перед другим контентом.
  • Последовательно бросая исключение при столкновении с непризнанным значением перечисления.
  • Несмотря на то, что он приводит к неверному численному значению (NAN или Infinite) или бросает ArithmeticException .

API меняется

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

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

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

Версия 1.1.0-Alpha04

13 декабря 2023 года

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

Новые возможности

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

API меняется

  • Параметр переполнения текста TEXT_OVERFLOW_ELLIPSIZE_END теперь устарел. Пожалуйста, используйте новый API TEXT_OVERFLOW_ELLIPSIZE с очень похожим поведением. ( I822d8 )
  • Следуя другим компонентам материала и составлению инициатив, мы теперь отключили подготовку Font по умолчанию по всем текстовым элементам. Кроме того, AndroidTextStyle и связанные срезы были удалены из публичного API. ( I79094 , IB0B03 , I32959 , IAF7D5 , IFA298 , I0A4AE , IDA9D3 )
  • Modifier.hidden заменяется Modifier.visible .
  • FontStyle#setSizes теперь принимает int вместо аргументов SpProp . ( I02B37 )

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

  • Выберите исключение при столкновении с неопределенным или непризнанным значением перечисления. ( I9d2cf )
  • Рефактор DynamicTypeBindingRequest . ( I27b57 )
  • Invalidate the result of an expression when it yields an invalid numeric value (NaN or infinite) or throws an ArithmeticException . ( I681ae )

Version 1.1.0-alpha03

November 29, 2023

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

Новые возможности

  • 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 Changes

  • 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

November 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 )
  • Add renderer support for Sweep Gradient in 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 )

Bug Fixes

  • Fixed an issue when an expression with multiple time data source registrations was not being updated immediately. ( I8e1a8 )
  • Fixed a bug to center root element during diff updates. ( Ie48f7 )
  • Unset (or empty) layout constraint values will not be ignored anymore. ( Ibc785 )
  • Reduced delay between a layout becoming visible and its pipeline nodes being initialized. ( I38d4e )

Версия 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

July 26, 2023

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

  • To migrate from Tiles to ProtoLayout , please follow the instructions here .

API Changes

  • We have removed 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 )

Bug Fixes

  • 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

June 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 Changes

  • 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 )

Bug Fixes

  • Update Prop messages with dynamic fields to use oneof instead ( I81739 )
  • Reuse setters implementation for overloads that have setters ( Ied70c )
  • Properly record fingerprints in setters that have overloads ( I86ed2 )

Version 1.0.0-alpha11

June 7, 2023

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

Новые возможности

  • We've added a PlatformDataKey for heart rate accuracy. ( I7f9b8 )

API Changes

  • 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 )

Bug Fixes

  • Update Prop types docs to clarify why static value is enforced. Specify the default value used if static value wasn't provided. ( I155aa )
  • PlatformDataKey namespaces should follow Java style naming. ( I47bda )

Version 1.0.0-alpha10

May 24, 2023

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

Новые возможности

  • 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 Changes

  • 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

May 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 Changes

  • 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 Changes

  • 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 )

Bug Fixes

  • 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

April 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 Changes

  • 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 )

Bug Fixes

  • 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 Changes

  • LoadActionListener has been added to ProtoLayoutViewInstance . ( If7806 )

Bug Fixes

  • Added FloatNodesTest ( Id7281 )
  • Fix renderer crash when unable to load structured bitmap.

Version 1.0.0-alpha05

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 Changes

  • 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 )

Bug Fixes

  • The Animator object will be reused for subsequent animations of a single element. ( Ia3be9 )

Version 1.0.0-alpha04

February 22, 2023

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

Новые возможности

  • 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 Changes

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

Bug Fixes

  • Rename set/getSpec to set/getAnimationSpec in Tiles animation ( I3d74b )

Version 1.0.0-alpha03

February 8, 2023

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

Новые возможности

  • 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

January 25, 2023

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

Новые возможности

  • 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

January 11, 2023

androidx.wear.protolayout:protolayout-expression:1.0.0-alpha01 and androidx.wear.protolayout:protolayout-proto:1.0.0-alpha01 are released. Version 1.0.0-alpha01 contains these commits.

Новые возможности

  • This release introduces a new library "ProtoLayout Expression" for creating expressions from dynamic variables.