Оконный менеджер
Последнее обновление | Стабильный выпуск | Релиз-кандидат | Бета-версия | Альфа-релиз |
---|---|---|---|---|
7 августа 2024 г. | 1.3.0 | - | - | 1.4.0-альфа01 |
Объявление зависимостей
Чтобы добавить зависимость от WindowManager, вам необходимо добавить в свой проект репозиторий Google Maven. Для получения дополнительной информации прочтите репозиторий Google Maven .
Добавьте зависимости для нужных вам артефактов в файл build.gradle
для вашего приложения или модуля:
классный
dependencies { implementation "androidx.window:window:1.3.0" // For Java-friendly APIs to register and unregister callbacks implementation "androidx.window:window-java:1.3.0" // For RxJava2 integration implementation "androidx.window:window-rxjava2:1.3.0" // For RxJava3 integration implementation "androidx.window:window-rxjava3:1.3.0" // For testing implementation "androidx.window:window-testing:1.3.0" }
Котлин
dependencies { implementation("androidx.window:window:1.3.0") // For Java-friendly APIs to register and unregister callbacks implementation("androidx.window:window-java:1.3.0") // For RxJava2 integration implementation("androidx.window:window-rxjava2:1.3.0") // For RxJava3 integration implementation("androidx.window:window-rxjava3:1.3.0") // For testing implementation("androidx.window:window-testing:1.3.0") }
Обратная связь
Ваши отзывы помогают сделать Jetpack лучше. Дайте нам знать, если вы обнаружите новые проблемы или у вас есть идеи по улучшению этой библиотеки. Пожалуйста, ознакомьтесь с существующими проблемами в этой библиотеке, прежде чем создавать новую. Вы можете добавить свой голос к существующей проблеме, нажав кнопку со звездочкой.
Дополнительную информацию см. в документации по системе отслеживания проблем .
Версия 1.4
Версия 1.4.0-альфа01
7 августа 2024 г.
Выпущен androidx.window:window-*:1.4.0-alpha01
. Версия 1.4.0-alpha01 содержит эти коммиты .
Новые возможности
- Закрепление ActivityStack позволяет приложениям закреплять контент в одном контейнере и изолировать навигацию от другого контейнера.
- Интерактивный разделитель позволяет приложениям отображать фиксированный или перетаскиваемый разделитель между двумя действиями в разделенной презентации.
- Полноэкранное затемнение диалога позволяет приложениям указывать затемненную область диалогового окна, чтобы либо затемнить все окно задачи, либо затемнить только контейнер, в котором отображается диалоговое окно.
- Обратный вызов встроенной информации окна активности позволяет приложениям постоянно получать обновления встроенного окна активности.
- Внедрение фона анимации позволяет приложениям указывать фон анимации, улучшая качество анимации перехода при использовании
ActivityEmbedding
. - Улучшенное управление ActivityStack позволяет приложениям иметь больший контроль над
ActivityStacks
при использованииActivityEmbedding
, в том числе: - Запуск активности в указанный
ActivityStack
- Завершение
ActivityStack
Изменения API
Новый API
WindowInfoTracker#supportedPostures
:- API, позволяющий определить, поддерживает ли устройство режим TableTop для складных устройств. Добавляет WindowAreaSessionPresenter#getWindow
Добавьте API для поддержки закрепления
ActivityStack
:- Класс
SplitPinRule
-
SplitController#pinTopActivityStack
-
SplitController#unpinTopActivityStack
- Класс
Добавьте API для включения и настройки интерактивного разделителя.
- Класс
DividerAttributes
-
SplitAttributes.Builder#setDividerAttributes
- Класс
Добавьте API для установки
EmbeddingConfiguration
иDimAreaBehavior
для диалоговых окон.- Класс
EmbeddingConfiguration
- Класс
DimAreaBehavior
-
ActivityEmbeddingController#setEmbeddingConfiguration
- Класс
Добавьте API для получения встроенных обновлений информации об окне активности.
- Класс
EmbeddedActivityWindowInfo
-
ActivityEmbeddingController#embeddedActivityWindowInfo
- Класс
Добавьте API для установки фона встроенной анимации.
-
EmbeddingAnimationBackground
-
SplitAttributes.Builder#setAnimationBackground
-
Добавьте API для завершения
ActivityStacks
-
ActivityEmbeddingController#finishActivityStacks
-
Добавьте API для настройки запуска
ActivityStack
-
ActivityEmbeddingOptions#setLaunchingActivityStack
-
Следующие API стабильны и больше не являются экспериментальными:
-
ActivityEmbeddingController#invalidateVisibleActivityStacks
(перенесено из SplitController#invalidateTopVisibleSplitAttributes) -
ActivityEmbeddingController#getActivityStack
-
SplitController#updateSplitAttributes
-
Добавьте API для версии 1.4. ( I56774 )
Исправление ошибок
- Исправлена ошибка на некоторых устройствах, из-за которой вместо ACTIVE возвращалось значение UNAVAILABLE, когда сеанс активен.
- Удалена поддержка
transferActivityToWindowArea
на устройствах сvendorApiLevel
, равным 2, из-за нестабильной поддержки API. - Представлен API для включения перетаскивания в полноэкранный режим для перетаскиваемого разделителя Activity Embedding. ( I645c9 )
- Разрешить приложениям отключать анимацию
ActivityEmbedding
с помощью параметров анимации дляSplitAttributes
. ( Idc01a ) - Убрано ручное определение доступа к API новой платформы, поскольку это происходит автоматически посредством моделирования API при использовании R8 с AGP 7.3 или новее (например, R8 версии 3.3) и для всех сборок при использовании AGP 8.1 или новее (например, D8 версии 8.1). Клиентам, не использующим AGP, рекомендуется выполнить обновление до D8 версии 8.1 или более поздней. Более подробную информацию можно найти в этой статье . ( Ia60e0 , б/345472586 )
- Разрешить расширениям принимать параметры анимации для
SplitAttributes
, чтобы устройство могло использовать их для переходов анимации. ( Иеде00 ) - Скрыть API-интерфейсы наложения ( Ic4251 )
- Представление API для настройки фиксированного или перетаскиваемого разделителя для разделения ( Ia7a78 ).
- Добавлена плотность в
WindowMetrics
( Id6723 ). - Добавьте API, чтобы получить
SupportedPostures
. ( Если557а ) - Удалить
setLaunchingActivityStack
из экспериментального API ( I191cf ). - Введение
ActivityEmbeddingController#embeddedActivityWindowInfo
( I24312 ) - Устаревший
#getToken
и добавьте#getActivityStackToken
( Ie0471 ). - Представление адаптера обратного вызова для API потока
embeddedActivityWindowInfo
( Ida77f ). - Добавить адаптер обратного вызова для API потока overlayInfo ( I7264f ).
- Введите
WindowSdkExtensionsRule
, чтобы переопределитьextensionsVersion
для тестирования. ( Ifb928 ) - — Перенесите
#setLaunchingActivityStack
в Bundle для совместимости с использованиемActivityOptionsCompat
.- Пользователи должны передавать
activityOptions.toBundle
вместо самогоActvityOptions
. - Удалите
#setLaunchingActivityStack(Activity)
. Пользователям следует перейти на использованиеActivityEmbeddingController#getActivityStac(Activity)
для полученияActivityStack
и передатьActivityStack
в#setLaunchingActivityStack
. ( Ie0ccc )
- Пользователи должны передавать
- - Ввести
ActivityStack.Token
иSpltInfo.Token
в качестве идентификатора для связи между WM Jetpack и расширениями.- Устаревшие/замените API для получения/возврата токена вместо IBinder. ( I12b24 )
- - Введение
ActivityEmbeddingController#invalidateVisibleActivityStacks
- Удалите
SplitController#invalidateTopVisibleSplitAttributes
поскольку эта функция консолидируется в#invalidateVisibleActivityStacks
( I02ef5 ).
- Удалите
- - Добавление API для настройки конфигурации встраивания. ( I59a4a )
- - Добавление закрепления/открепления верхних API-интерфейсов
ActivityStack
androidx.Window
- Обновление демонстрационного приложения, позволяющее закреплять/откреплять верхнюю часть
ActivityStack
( I24dd3 )
- Обновление демонстрационного приложения, позволяющее закреплять/откреплять верхнюю часть
- Повторно добавьте
#finishActivityStacks
иActivityEmbeddingOptions
( Ic1ab3 ). - Удалите нестабильные API. ( Ibc534 , б/302380585 )
Версия 1.3
Версия 1.3.0
29 мая 2024 г.
Выпущен androidx.window:window-*:1.3.0
. Версия 1.3.0 содержит эти коммиты .
Важные изменения с версии 1.2.0
- Многоплатформенная поддержка Kotlin для классов размера окон.
Версия 1.3.0-rc01
14 мая 2024 г.
WindowManager
Jetpack 1.3 обеспечивает многоплатформенную поддержку Kotlin для функций WindowSizeClass
, а также множество исправлений ошибок.
androidx.window:window-*:1.3.0-rc01
выпущен. Версия 1.3.0-rc01 содержит эти коммиты .
Версия 1.3.0-бета02
1 мая 2024 г.
Выпущен androidx.window:window-*:1.3.0-beta02
. Версия 1.3.0-beta02 содержит эти коммиты .
Изменения API
- Удалить поддержку создания и использования пользовательских
WindowSizeClass
. ( ID1143 )
Исправление ошибок
- Исправляет
KotlinReflectionInternalError
, вызванную удалением proguard некоторых файлов на определенных реализациях устройств. ( I01b02 )
Версия 1.3.0-бета01
3 апреля 2024 г.
Выпущен androidx.window:window-*:1.3.0-beta01
. Версия 1.3.0-beta01 содержит эти коммиты .
Версия 1.3.0-альфа03
6 марта 2024 г.
Выпущен androidx.window:window-*:1.3.0-alpha03
. Версия 1.3.0-alpha03 содержит эти коммиты .
Изменения API
- Разделите
WindowSizeClassUtil
на более целенаправленные методы. ( Ie9292 ) - Восстановить
WindowSizeClass#compute
( I21355 , b/324293374 )
Исправление ошибок
- Исправлен сбой, из-за которого предоставленный контекст не разворачивался правильно. ( 94d10ce , б/318787482 )
Версия 1.3.0-альфа02
7 февраля 2024 г.
Выпущен androidx.window:window-*:1.3.0-alpha02
. Версия 1.3.0-alpha02 содержит эти коммиты.
Новые возможности
- Обновления, внесенные в интерфейс API класса размера окна, призваны повысить гибкость для разработчиков, которые хотят использовать свои собственные классы размеров.
Изменения API
- Добавьте ограничения высоты в селектор ширины. ( I23393 )
- Добавьте служебные функции для выбора
WindowSizeClass
из набора. Добавьте экспериментальные функции оценки, чтобы разработчики могли писать свои собственные селекторы. Добавьте функцию расширения селектора, чтобы выбрать самый широкийWindowSizeClass
в пределах заданной границы. ( I0c944 ) - Откройте конструктор
WindowSizeClass
, чтобы можно было добавить собственные точки останова. ( Ic1ff3 ) - Добавьте удобную функцию для создания класса размера по ширине, высоте и плотности. ( Если67f4 )
Исправление ошибок
- Исправлено исключение, когда значение с плавающей запятой усекается до 0. ( 272ffac )
Версия 1.3.0-альфа01
15 ноября 2023 г.
Выпущен androidx.window:window-*:1.3.0-alpha01
. Версия 1.3.0-alpha01 содержит эти коммиты.
Новые возможности
- Предоставьте экспериментальные API-интерфейсы окон для доступа к заднему экрану.
- Тестовые API для создания
FoldingFeature
теперь стабильны. - Тестовые API для настройки поддельных значений
ActivityEmbedding
теперь стабильны. -
WindowLayoutInfoPublisherRule
теперь сообщает о переопределении при получении значения изUiContext
. -
WindowInfoTracker
сообщает данные функции складывания в параметрыUiContext
. - Откройте версию расширений на устройстве.
- Константы
WindowProperties
для переопределений для каждого приложения:-
PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_OVERRIDE
— сообщает системе, что приложение отказалось от переопределения совместимости соотношения сторон, обращенного к пользователю. -
PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_FULLSCREEN_OVERRIDE
— сообщает системе, что приложение отказалось от полноэкранного режима в настройках переопределения совместимости с соотношением сторон пользователя.
-
Версия 1.2
Версия 1.2.0
15 ноября 2023 г.
androidx.window:window-*:1.2.0
выпущен. Версия 1.2.0 содержит эти коммиты.
Важные изменения с версии 1.1.0
- Предоставьте экспериментальные API-интерфейсы окон для доступа к заднему экрану.
- Тестовые API для создания
FoldingFeature
теперь стабильны. - Тестовые API для настройки поддельных значений
ActivityEmbedding
теперь стабильны. -
WindowLayoutInfoPublisherRule
теперь сообщает о переопределении при получении значения изUiContext
. -
WindowInfoTracker
сообщает данные функции складывания в параметрыUiContext
. - Откройте версию расширений на устройстве.
Версия 1.2.0-rc01
1 ноября 2023 г.
androidx.window:window-*:1.2.0-rc01
выпущен. Версия 1.2.0-rc01 содержит эти коммиты.
Новые возможности
- Предоставьте экспериментальные API-интерфейсы окон для доступа к заднему экрану.
- Тестовые API для создания
FoldingFeature
теперь стабильны. - Тестовые API для настройки поддельных значений
ActivityEmbedding
теперь стабильны. -
WindowLayoutInfoPublisherRule
теперь сообщает о переопределении при получении значения изUiContext
. -
WindowInfoTracker
сообщает данные функции складывания в параметрыUiContext
. - Откройте версию расширений на устройстве.
Версия 1.2.0-бета04
18 октября 2023 г.
Выпущен androidx.window:window-*:1.2.0-beta04
. Версия 1.2.0-beta04 содержит эти коммиты.
Изменения API
- Удалите нестабильные API. ( Ibc534 , б/302380585 )
Версия 1.2.0-бета03
20 сентября 2023 г.
Выпущен androidx.window:window-*:1.2.0-beta03
. Версия 1.2.0-beta03 содержит эти коммиты.
Новые возможности
- Добавьте
RequiresApi
проверки API, которым для правильной работы требуется определенная версия расширений. - Добавьте API, чтобы предоставить версию расширений на устройстве.
Изменения API
- Аннотируйте требуемую версию расширения Windows SDK в общедоступных API.
- Удалите
isXXXSupported
в компоненте «Внедрение действий». ( Ie3dae )
- Удалите
- Введите
WindowSdkExtensions
чтобы сообщить версию расширения на устройстве.- Введите
RequiresWindowSdkExtension
, чтобы указать минимально необходимую версию расширения. ( I05fd4 )
- Введите
- Делает
WindowAreaInfo#getCapability
необнуляемым. ( I17048 )
Версия 1.2.0-бета01
26 июля 2023 г.
Выпущен androidx.window:window-*:1.2.0-beta01
. Версия 1.2.0-beta01 содержит эти коммиты.
Новые возможности
- Предоставьте экспериментальные API-интерфейсы окон для доступа к заднему экрану.
- Тестовые API для создания
FoldingFeature
теперь стабильны. - Тестовые API для настройки поддельных значений
ActivityEmbedding
теперь стабильны. -
WindowLayoutInfoPublisherRule
теперь сообщает о переопределении при получении значения изUiContext
. -
WindowInfoTracker
сообщает данные функции складывания в параметрыUiContext
.
Изменения API
- Помечает API
WindowArea
как экспериментальный, что позволяет продолжить изменения API для стабильной версии 1.3 ( I857f5 ). - Обновлены файлы API для подавления аннотаций совместимости ( I8e87a , b/287516207 ).
Версия 1.2.0-альфа03
21 июня 2023 г.
Выпущен androidx.window:window-*:1.2.0-alpha03
. Версия 1.2.0-alpha03 содержит эти коммиты.
Новые возможности
- Удаление устаревших API с поверхности API.
- Добавьте API для поддержки одновременного отображения.
- Добавьте свойство, чтобы отказаться от принудительного изменения размера.
- Добавьте свойство, чтобы отказаться от переопределения минимального соотношения сторон.
- Стабилизируйте
ActivityEmbeddingRule
для поддержки модульного тестирования внедрения Activity.
Изменения API
Исправление ошибок
- Добавление свойства отказа от совместимости для принудительного изменения размера ( Ie7ab1 )
- Удаляет
SESSION_STATE_CONTENT_INVISIBLE
из интерфейса расширений. ( I6ed19 ) - Стабилизируйте
ActivityEmbeddingRule
для поддержки модульного тестирования внедрения Activity. ( I8d6b6 ) - Добавлено свойство отказа от совместимости для переопределения минимального соотношения сторон. ( I66390 )
- Удаляет устаревшие API WindowArea ( Ieb67c ).
- Переименуйте свойство цикла запроса ориентации на
PROPERTY_COMPAT_ALLOW_IGNORING_ORIENTATION_REQUEST_WHEN_LOOP_DETECTED
. ( Ie2fbd ) - Обновляет имена констант сеанса области окна ( I83675 )
- Добавление свойства отказа от совместимости, которое игнорирует цикл запроса ориентации при обнаружении ( I0a7a2 )
- Добавьте
WindowAreaComponent#STATUS_ACTIVE
чтобы указать, что эта функция уже активна. ( I62bc3 ) - Добавьте API
RearDisplayPresentationMode
( I0401c ) - Удалите API цвета фона для стабильной версии. ( I34c3e )
- Скрыть API-интерфейсы области окна. ( I39de0 )
- Добавьте методы для переопределения
SplitInfo
вSplitController
. Добавьте методы тестирования для создания дублей дляSplitInfo
иActivityStack
. ( Icd69f ) - Сделайте тег необязательным для
ActivityRule.Builder
. ( Ib0b44 ) - Удалите
RatioSplitType
,ExpandContainersSplit
иHingeSplitType
. Теперь ониSplitType
.- Замените
#splitEqually()
,#expandContainers()
и#splitByHinge
на константыSplitType SPLIT_TYPE_EQUAL
,SPLIT_TYPE_EXPAND
иSPLIT_TYPE_HINGE
- Удалите функцию установки резервного типа разделения шарнира. Если тип разделения шарнира не может быть применен из-за текущего состояния устройства или окна, он возвращается к равному разделению контейнера родительской задачи. Используйте
SplitController#setSplitAttributesCalculator
чтобы настроить резервный тип разделения. ( Ifcc59 )
- Замените
- Устарело
add
/removeSplitCallback
- Переместите
add
/removeSplitCallback
вSplitControllerCallbackAdapter
- Добавьте поддержку
Flow
для получения спискаSplitInfo
( I7f1b6 )
- Переместите
- Добавьте тестовое правило для
ActivityEmbeddingController
( I42e9b ). - Переименование
ActivityOptionsCompat
вActivityEmbeddingOptions
( I89301 ) - Добавьте
splitSupportStatus
чтобы указать, доступно ли внедрение активности. ( I10024 ) - Введите
SplitAttributes.BackgroundColor
, чтобы лучше представить значениеDEFAULT
. Уточните, что непрозрачный цвет фона анимации не поддерживается, поэтому любые непрозрачные цвета будут рассматриваться как цвета по умолчанию, что означает использование текущего цвета фона окна темы. ( Ic6b95 ) - Замените
alwaysAllow()
иalwaysDisallow()
наALWAYS_ALLOW
иALWAYS_DISALLOW
. ( I3057b ) - Добавьте API для
SplitRule
,SplitAttributes
,SplitAttributesCalculator
. ( I92d23 ) - Добавьте
TestActivityStack
, чтобы создатьActivityStack
для тестирования.- Добавьте
TestSplitInfo
чтобы создатьSplitInfo
для тестирования. ( I8e779 )
- Добавьте
- Добавьте способ создания поддельных
SplitAttributesCalculatorParams
чтобы разработчики могли проверять свой настроенныйSplitAttributesCalculator
( Id4a6e ). - Добавьте
WindowMetricsCalculator#computeCurrentWindowMetrics(@UiContext context: Context)
иWindowMetricsCalculator#computeMaximumWindowMetrics(@UiContext context: Context)
( I66c7f )
Версия 1.2.0-альфа02
7 июня 2023 г.
Выпущен androidx.window:window-*:1.2.0-alpha02
. Версия 1.2.0-alpha02 содержит эти коммиты.
Новые возможности
- Обновите тестовый API, чтобы иметь константу для неуказанных функций складывания.
- Переопределение с помощью
WindowLayoutInfoPublishRule
приведет к переопределению всех значенийwindowLayoutInfo
, включая API на основе контекста.
Изменения API
- Добавьте константу для неопределенной функции складывания по центру. ( I7530c )
Исправление ошибок
- Обновите
WindowLayoutInfoPublishRule
для поддержки переопределенийWindowLayoutInfo
на основеContext
. ( я2037а )
Версия 1.2.0-альфа01
24 мая 2023 г.
androidx.window:window-*:1.2.0-alpha01
выпущен. Версия 1.2.0-alpha01 содержит эти коммиты.
Новые возможности
Стабилизация API тестирования с помощью Activity Embedding и WindowLayoutInfoTracker
. ActivityEmbeddingRule
повышен до стабильной версии. WindowMetricsCalculatorRule
повышен до стабильной версии. Служебные функции для создания FoldingFeature
для тестирования повышены до стабильной версии.
Изменения API
- Стабилизируйте
ActivityEmbeddingRule
для поддержки модульного тестирования внедрения Activity. ( I8d6b6 ) -
WindowMetrisCalculatorTestRule
является стабильным и позволяет использовать метрики-заглушки для тестов JVM. Мы рекомендуем использовать эмулятор для получения точных результатов. - Стабилизируйте тестовые API для
WindowLayoutInfo
для поддержки тестирования JVM. ( Ie036e ) - Добавьте
IntRange
для тестовых значений функции сгиба. ( I69f7d )
Версия 1.1
Версия 1.1.0
7 июня 2023 г.
androidx.window:window-*:1.1.0
выпущен. Версия 1.1.0 содержит эти коммиты.
Важные изменения с версии 1.0.0
Встраивание активности
- Добавлено
PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED
в качестве логического свойства тега<application>
в манифесте приложения. - Устаревший
isSplitSupported
заменен наsplitSupportStatus
, чтобы предоставить более подробную информацию о том, почему функция разделения недоступна. - Добавлен вложенный класс
SplitController.SplitSupportStatus
, предоставляющий константы состояния для свойстваsplitSupportStatus
. -
SplitController
переработан в несколько модулей:- Модуль
ActivityEmbeddingController
для API, связанных сActivity
илиActivityStack
. -
isActivityEmbedded
перемещен изSplitController
вActivityEmbeddingController
. - Модуль
RuleController
для операций, связанных сEmbeddingRule
: - Удалены API
SplitController
: -
clearRegisteredRules()
-
getSplitRules()
-
initialize()
-
registerRule()
-
unregisterRule()
- Добавлены API
RuleController
: -
addRule()
— Добавляет правило или обновляет правило, имеющее тот же тег. -
removeRule()
— Удаляет правило из коллекции зарегистрированных правил. -
setRules()
— Устанавливает набор правил. -
clearRules()
— Удаляет все зарегистрированные правила. -
parseRules()
— Анализирует правила на основе определений правил XML.
- Модуль
- Все модули требуют инициализации контекста методом
#getInstance()
, включая:-
ActivityEmbeddingController#getInstance(Context)
-
SplitController#getInstance(Context)
-
RuleController#getInstance(Context)
-
- Добавлен класс
EmbeddingAspectRatio
для определения констант поведения типа перечисления, связанных с соотношением сторон дисплея. - Добавлен класс
SplitAttributes
для определения макета разделения. - В
SplitController
добавлены функции калькулятораSplitAttributes
для настройки разделенных макетов:-
setSplitAttributesCalculator(Function)
-
clearSplitAttributesCalculator()
-
isSplitAttributesCalculatorSupported()
чтобы проверить, поддерживаются ли на устройстве APISplitAttributesCalculator
-
- Добавлено поле
EmbeddingRule#tag
. - Обновления API в
SplitRule
:- Добавлен
defaultSplitAttributes
— определяет макет разделения по умолчанию; заменяетsplitRatio
иlayoutDirection
. - Добавлен перевод свойств XML
splitRatio
иsplitLayoutDirection
вdefaultSplitAttributes
. - Изменены определения минимальных размеров, чтобы вместо пикселей использовались независимые от плотности пиксели (dp).
- Добавлен
minHeightDp
со значением по умолчанию 600dp. -
minWidth
изменен наminWidthDp
со значением по умолчанию 600dp. -
minSmallestWidth
изменен наminSmallestWidthDp
со значением по умолчанию 600dp. - Добавлен
maxAspectRatioInHorizontal
со значением по умолчаниюALWAYS_ALLOW
. - Добавлен
maxAspectRatioInPortrait
со значением по умолчанию 1,4. - Определен вложенный класс
FinishBehavior
для замены констант поведения завершения. - Применены изменения свойств к вложенному классу Builder
SplitPairRule
иSplitPlaceholderRule
.
- Добавлен
-
SplitInfo#getSplitRatio()
заменен наSplitInfo#getSplitAttributes()
для предоставления дополнительной информации, связанной с разделением.
ОкноМайаут
- В
WindowInfoTracker
добавлена экспериментальная поддержка контекста пользовательского интерфейса при отсутствии активности. - В
WindowMetricsCalculator
добавлен экспериментальный контекст пользовательского интерфейса бездействия.
Этапы миграции
- Чтобы включить встраивание действий для отображения действий в разделениях, приложения должны добавить свойство
PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED
в тег манифеста<application>
:xml <property android:name="android.window.PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED" android:value="true" />
Это позволяет система для предварительной оптимизации поведения разделения для приложения. - Коэффициент
SplitInfo
- Проверьте, сгруппировано ли текущее разделение:
kotlin SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.ExpandContainersSplitType
- Проверьте текущее соотношение:
kotlin if (SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.RatioSplitType) { val ratio = splitInfo.splitAttributes.splitType.ratio } else { // Ratio is meaningless for other types. }
- Проверьте, сгруппировано ли текущее разделение:
- Миграции SplitController:
-
SplitController.getInstance()
меняется наSplitController.getInstance(Context)
. -
SplitController.initialize(Context, @ResId int)
заменяется наRuleController.getInstance(Context).setRules(RuleController.parse(Context, @ResId int))
. -
SplitController.getInstance().isActivityEmbedded(Activity)
меняется наActivityEmbeddingController.getInstance(Context).isActivityEmbedded(Activity)
. -
SplitController.getInstance().registerRule(rule)
меняется наRuleController.getInstance(Context).addRule(rule)
. -
SplitController.getInstance().unregisterRule(rule)
меняется наRuleController.getInstance(Context).removeRule(rule)
. -
SplitController.getInstance().clearRegisteredRules()
заменяется наRuleController.getInstance(Context).clearRules()
. -
SplitController.getInstance().getSplitRules()
заменяется наRuleController.getInstance(Context).getRules()
.
-
- Миграция свойств
SplitRule
:-
minWidth
иminSmallestWidth
теперь используют единицы dp вместо пикселей. Приложения могут использовать следующий вызов:kotlin TypedValue.applyDimension( COMPLEX_UNIT_DIP, minWidthInPixels, resources.displayMetrics )
или просто разделитьminWith
в пикселях наdisplayMetrics#density
.
-
- Константы поведения Finish необходимо перенести в константы класса
FinishBehavior
, подобные перечислению:-
FINISH_NEVER
меняется наFinishBehavior.NEVER
. -
FINISH_ALWAYS
меняется наFinishBehavior.ALWAYS
. -
FINISH_ADJACENT
меняется наFinishBehavior.ADJACENT
.
-
- Направление макета необходимо перенести в
SplitAttributes.LayoutDirection
:-
ltr
изменится наSplitAttributes.LayoutDirection.LEFT_TO_RIGHT
. -
rtl
изменится наSplitAttributes.LayoutDirection.RIGHT_TO_LEFT
. -
locale
меняется наSplitAttributes.LayoutDirection.LOCALE
. -
splitRatio
необходимо перенести вSplitAttributes.SplitType.ratio(splitRatio)
.
-
- Миграции
SplitPairRule.Builder
:-
SplitPairRule.Builder(filters, minWidth, minSmallestWidth)
меняется наkotlin SplitPairRule.Builder(filters) .setMinWidthDp(minWidthInDp) // Optional if minWidthInDp is 600. .setMinSmallestWidthDp(minSmallestWidthDp) // Optional if minSmallestWidthInDp is 600.
-
setLayoutDirection(layoutDirection)
иsetSplitRatio(ratio)
изменяются наkotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
-
setFinishPrimaryWithSecondary
иsetFinishSecondaryWithPrimary
принимают константы типа перечисленияFinishBehavior
. Подробности см. в разделе «Миграция SplitRule». - Используйте
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)
чтобы отображать разделения на устройствах с портретной ориентацией.
-
- Миграции
SplitPlaceholder.Builder
:- Имеет только
filters
и параметрыplaceholderIntent
. Другие свойства перемещаются в сеттеры. Подробности см. в разделе «Миграции SplitPairRule.Builder». -
setFinishPrimaryWithPlaceholder
принимает константы типа перечисленияFinishBehavior
. Подробности см. в разделе «Миграция SplitRule». -
setLayoutDirection(layoutDirection)
иsetSplitRatio(ratio)
изменяются на:kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
- Используйте
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)
чтобы отображать разделения на устройствах с портретной ориентацией.
- Имеет только
Версия 1.1.0-rc01
10 мая 2023 г.
androidx.window:window-*:1.1.0-rc01
выпущен. Версия 1.1.0-rc01 содержит эти коммиты.
Новые возможности
- Выпустите
ActivityEmbedding
как стабильный API. - Различные исправления ошибок.
Версия 1.1.0-beta02
5 апреля 2023 г.
Выпущен androidx.window:window-*:1.1.0-beta02
. Версия 1.1.0-beta02 содержит эти коммиты.
Новые возможности
- Внутренние исправления и чистка.
Версия 1.1.0-бета01
22 марта 2023 г.
Выпущен androidx.window:window-*:1.1.0-beta01
. Версия 1.1.0-beta01 содержит эти коммиты.
Встраивание активности
- Добавлено
PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED
в качестве логического свойства тега<application>
в манифесте приложения. - Устаревший
isSplitSupported
заменен наsplitSupportStatus
, чтобы предоставить более подробную информацию о том, почему функция разделения недоступна. - Добавлен вложенный класс
SplitController.SplitSupportStatus
, предоставляющий константы состояния для свойстваsplitSupportStatus
. -
SplitController
переработан в несколько модулей:- Модуль
ActivityEmbeddingController
для API, связанных сActivity
илиActivityStack
. -
isActivityEmbedded
перемещен изSplitController
вActivityEmbeddingController
. - Модуль
RuleController
для операций, связанных сEmbeddingRule
: - Удалены API
SplitController
:-
clearRegisteredRules()
-
getSplitRules()
-
initialize()
-
registerRule()
-
unregisterRule()
-
- Добавлены API
RuleController
:-
addRule()
— Добавляет правило или обновляет правило, имеющее тот же тег. -
removeRule()
— Удаляет правило из коллекции зарегистрированных правил. -
setRules()
— Устанавливает набор правил. -
clearRules()
— Удаляет все зарегистрированные правила. - `parseRules() — Анализирует правила на основе определений правил XML.
-
- Модуль
- Все модули требуют инициализации контекста методом
#getInstance()
, включая:-
ActivityEmbeddingController#getInstance(Context)
-
SplitController#getInstance(Context)
-
RuleController#getInstance(Context)
-
- Добавлен класс
EmbeddingAspectRatio
для определения констант поведения типа перечисления, связанных с соотношением сторон дисплея. - Добавлен класс
SplitAttributes
для определения макета разделения. - В
SplitController
добавлены функции калькулятораSplitAttributes
для настройки разделенных макетов:-
setSplitAttributesCalculator(Function)
-
clearSplitAttributesCalculator()
-
isSplitAttributesCalculatorSupported()
чтобы проверить, поддерживаются ли на устройстве API SplitAttributesCalculator.
-
- Добавлено поле
EmbeddingRule#tag
. - Обновления API в
SplitRule
:- Добавлен
defaultSplitAttributes
— определяет макет разделения по умолчанию; заменяетsplitRatio
иlayoutDirection
. - Добавлен перевод свойств XML
splitRatio
иsplitLayoutDirection
вdefaultSplitAttributes
. - Изменены определения минимальных размеров, чтобы вместо пикселей использовались независимые от плотности пиксели (dp).
- Добавлен
minHeightDp
со значением по умолчанию 600dp. -
minWidth
изменен наminWidthDp
со значением по умолчанию 600dp. -
minSmallestWidth
изменен наminSmallestWidthDp
со значением по умолчанию 600dp. - Добавлен
maxAspectRatioInHorizontal
со значением по умолчаниюALWAYS_ALLOW
. - Добавлен
maxAspectRatioInPortrait
со значением по умолчанию1.4
. - Определен вложенный класс
FinishBehavior
для замены констант поведения завершения. - Применены изменения свойств к вложенному классу
Builder
SplitPairRule
иSplitPlaceholderRule
.
- Добавлен
-
SplitInfo#getSplitRatio()
заменен наSplitInfo#getSplitAttributes()
для предоставления дополнительной информации, связанной с разделением.
ОкноМайаут
- В
WindowInfoTracker
добавлена поддержка контекста пользовательского интерфейса без активности. - В
WindowMetricsCalculator
добавлен контекст пользовательского интерфейса бездействия.
Этапы миграции
- Чтобы включить встраивание действий для отображения действий в разделениях, приложения должны добавить свойство
PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED
в тег манифеста<application>
:xml <property android:name="android.window.PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED" android:value="true" />
Это позволяет система для предварительной оптимизации поведения разделения для приложения. - Коэффициент
SplitInfo
- Проверьте, сгруппировано ли текущее разделение:
kotlin SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.ExpandContainersSplitType
- Проверьте текущее соотношение:
kotlin if (SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.RatioSplitType) { val ratio = splitInfo.splitAttributes.splitType.ratio } else { // Ratio is meaningless for other types. }
- Проверьте, сгруппировано ли текущее разделение:
- Миграции
SplitController
:-
SplitController.getInstance()
меняется наSplitController.getInstance(Context)
. -
SplitController.initialize(Context, @ResId int)
заменяется наRuleController.getInstance(Context).setRules(RuleController.parse(Context, @ResId int))
. -
SplitController.getInstance().isActivityEmbedded(Activity)
меняется наActivityEmbeddingController.getInstance(Context).isActivityEmbedded(Activity)
. -
SplitController.getInstance().registerRule(rule)
меняется наRuleController.getInstance(Context).addRule(rule)
. -
SplitController.getInstance().unregisterRule(rule)
меняется наRuleController.getInstance(Context).removeRule(rule)
. -
SplitController.getInstance().clearRegisteredRules()
заменяется наRuleController.getInstance(Context).clearRules()
. -
SplitController.getInstance().getSplitRules()
заменяется наRuleController.getInstance(Context).getRules()
.
-
- Миграция свойств
SplitRule
:-
minWidth
иminSmallestWidth
теперь используют единицы dp вместо пикселей. Приложения могут использовать следующий вызов:kotlin TypedValue.applyDimension( COMPLEX_UNIT_DIP, minWidthInPixels, resources.displayMetrics )
или просто разделитьminWith
в пикселях наdisplayMetrics#density
.
-
- Константы поведения Finish необходимо перенести в константы класса
FinishBehavior
, подобные перечислению:-
FINISH_NEVER
меняется наFinishBehavior.NEVER
. -
FINISH_ALWAYS
меняется наFinishBehavior.ALWAYS
. -
FINISH_ADJACENT
меняется наFinishBehavior.ADJACENT
.
-
- Направление макета необходимо перенести в
SplitAttributes.LayoutDirection
:-
ltr
изменится наSplitAttributes.LayoutDirection.LEFT_TO_RIGHT
. -
rtl
изменится наSplitAttributes.LayoutDirection.RIGHT_TO_LEFT
. -
locale
меняется наSplitAttributes.LayoutDirection.LOCALE
. -
splitRatio
необходимо перенести вSplitAttributes.SplitType.ratio(splitRatio)
.
-
- Миграции
SplitPairRule.Builder
:-
SplitPairRule.Builder(filters, minWidth, minSmallestWidth)
меняется наkotlin SplitPairRule.Builder(filters) .setMinWidthDp(minWidthInDp) // Optional if minWidthInDp is 600. .setMinSmallestWidthDp(minSmallestWidthDp) // Optional if minSmallestWidthInDp is 600.
-
setLayoutDirection(layoutDirection)
иsetSplitRatio(ratio)
изменяются наkotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
-
setFinishPrimaryWithSecondary
иsetFinishSecondaryWithPrimary
принимают константы типа перечисленияFinishBehavior
. Подробности см. в разделе «Миграция SplitRule». - Используйте
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)
чтобы отображать разделения на устройствах с портретной ориентацией.
-
- Миграции
SplitPlaceholder.Builder
:- Имеет только
filters
и параметрыplaceholderIntent
. Другие свойства перемещаются в сеттеры. Подробности см. в разделе «Миграции SplitPairRule.Builder». -
setFinishPrimaryWithPlaceholder
принимает константы типа перечисленияFinishBehavior
. Подробности см. в разделе «Миграция SplitRule». -
setLayoutDirection(layoutDirection)
иsetSplitRatio(ratio)
изменяются на:kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
- Используйте
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)
чтобы отображать разделения на устройствах с портретной ориентацией.
- Имеет только
Версия 1.1.0-альфа06
22 февраля 2023 г.
Выпущен androidx.window:window-*:1.1.0-alpha06
. Версия 1.1.0-alpha06 содержит эти коммиты.
Новые возможности
- Предоставьте экспериментальную версию получения
WindowLayoutInfo
из контекста пользовательского интерфейса.
Изменения API
- Добавьте
splitSupportStatus
чтобы указать, доступно ли внедрение активности. ( I10024 ) - Сделать API контекста пользовательского интерфейса
WindowLayoutInfo
экспериментальным. ( I58ee0 ) - Представляет
WindowAreaController
и API, позволяющие включить режимRearDisplay
для перемещения текущего окна на дисплей, совмещенный с задней камерой. ( Иффкбф ) - Обновить цвет фона по умолчанию. ( I1ac1b )
- Добавьте параметры
SplitAttributes
. ( I18bdd ) - Добавьте API для
SplitRule
,SplitAttributes
,SplitAttributesCalculator
. ( I92d23 ) - Улучшите API-интерфейсы
maxAspectRatio
:- Замените
alwaysAllow()
иalwaysDisallow()
наALWAYS_ALLOW
иALWAYS_DISALLOW
. - Обновите документацию по API @see с помощью отдельной документации. ( I3057b )
- Замените
- Следующие конструкторы удалены из общедоступных API, поскольку приложения не должны вызывать их.
- Конструктор
SplitInfo
- Конструктор
ActivityStack
( Ide534 )
- Конструктор
-
SplitRule
теперь принимаетmaxAspectRatioInPortrait/Landscape
. Он позволяет разделить действия только в том случае, если соотношение сторон родительских границ меньше или равно запрошенномуmaxAspectRatio
. ( Я5990 ) - Измените
RuleController#parseRules
на статический ( I785df ) - Улучшите API-интерфейсы ActivityEmbedding.
- Согласуйте именование API. Используйте добавление/удаление для нескольких экземпляров:
-
registerRule
меняется наaddRule
-
unregisterRule
меняется наremoveRule
- Замените
getSplitRules
наgetRules
посколькуActivityRule
не является правилом разделения. - Добавьте
RuleController#setRules
чтобы установить набор правил. - Извлеките API-интерфейсы, связанные с правилами, из
SplitController
в одноэлементныйRuleController
. Они есть: -
addRule
-
removeRule
-
getRules
-
setRules
-
clearRules
-
parseRules
- Извлеките
#isActivityEmbedded
изSplitController
в одноэлементныйActivityEmbeddingController
. Они есть: -
isActivityEmbedded
- Удалите
SplitController#initialize
. Чтобы установить правила из XML-файла, используйтеRuleController#parseRules
и#setRules
. До этого изменения:SplitController.initialize(context, R.xml.static_rules)
После этого изменения:val ruleController = RuleController.getInstance(context) val rules = ruleController.parseRules(R.xml.static_rules) ruleController.setRules(rules)
- Мы больше не отличаем статические правила от правил времени выполнения. Тем не менее, вызов результатов
#clearRules
очищает все правила, независимо от того, зарегистрированы ли они с помощью статических определений правил XML или во время выполнения. Чтобы сохранить устаревшее поведениеSplitController#clearRegisteredRules
, вызовитеRuleController#parseRules
с идентификатором ресурсов XML и вызовитеRuleController#setRules
чтобы снова отменить правила. До этого изменения:SplitController.getInstance(context).clearRegisteredRules()
После этого изменения:val ruleController = RuleController.getInstance(context) val rules = ruleController.parseRules(R.xml.static_rules) ruleController.setRules(rules)
( Ib3967 )
- Улучшите API SplitRule:
- Возьмите минимальные размеры в DP вместо пикселей для
SplitRule
. - Рефакторинг для
SplitRule
Builder, чтобы минимальные размеры были необязательными. ( I95f17 )
- Возьмите минимальные размеры в DP вместо пикселей для
- Передайте контекст для инициализации
SplitController
( I42549 ). -
SplitRule#layoutDir
переименован в#layoutDirection
, аSplitRule Builder#setLayoutDir
— вBuilder#setLayoutDirection
. ( I3f6d1 )
Версия 1.1.0-альфа04
9 ноября 2022 г.
Выпущен androidx.window:window-*:1.1.0-alpha04
. Версия 1.1.0-alpha04 содержит эти коммиты.
Новые возможности
- Предоставьте метод, чтобы определить, пуст ли
ActivityStack
дляActivityEmbedding
. - Удалены экспериментальные теги API из API
ActivityEmbedding
. - Скрыть конструктор
ActivityRule
, посколькуBuilder
является предпочтительным способом создания. - Добавьте экспериментальный метод для получения
WindowInsets
вWindowMetrics
. - Обновите
SplitPlaceholderFinishBehavior
, чтобы предотвратить завершение заполнителя. Завершение заполнителя привело к некоторому путанице.
Изменения API
- Сделайте val
isEmpty
общедоступным, чтобы заменить funisEmpty
. - Переименуйте действия параметра
ActivityStack
activitiesInProcess
. ( Я5055 ) - Удалите
ActivityFilter#matchesClassName
иActivityFilter#matchesClassNameOrWildCard
поскольку они вносят путаницу. - Добавьте
ActivityFilter#componentName
abdActivityFilter#intentAction
чтобы вызывающая сторона могла различать разные фильтры ( I41f22 ). - Удалить
@Deprecated
API из экспериментального API ( i216b3 ) - Удалить
@ExperimentalWindowApi
для активности, встраиваемые с API ( i69ebe ) - Скрыть конструктор
ActivityRule
, вместо этого используйте строитель. ( IF4EB6 ) - Добавьте API, чтобы проверить, является ли деятельность частью
ActivityFilter
. ( IA43CF ) - Обновить файлы API, чтобы отразить изменения в классах
WindowMetrics
иWindowMetricsCalculatorCompat
( i667fe ) - Обновление
ActivityEmbedding
свойство Javadoc и название класса ( IA1386 ) - Добавление названий тегов свойств
ActivityEmbedding
, которые будут использоваться в AndroidManifest.xml ( id1ad4 ) - Добавлен новый API
SplitPlaceholderFinishBehavior
иSplitPlaceholderRule.finishPrimaryWithPlaceholder
, это заменяет существующиеSplitPlaceholderRule.finishPrimaryWithSecondary
со стороны, который определяет, когда заполняются заполнители, как следует вести связанные активности в вступлении в действие. ( I64647 )
Исправление ошибок
- Представляет
WindowAreaController
и API, чтобы разрешить режимRearDisplay
перемещать текущее окно на дисплей, который выровнен с задней камерой. ( I388ab )
Версия 1.1.0-альфа03
27 июля 2022 г.
androidx.window:window-*:1.1.0-alpha03
выпускается. Версия 1.1.0-alpha03 содержит эти коммиты.
Новые возможности
- Обновите значения по умолчанию для внедрения правил.
Изменения API
- Обновить значения по умолчанию для внедрения свойств правил. ( IC4D35 )
Версия 1.1.0-альфа02
11 мая 2022 г.
androidx.window:window-*:1.1.0-alpha02
выпускается. Версия 1.1.0-alpha02 содержит эти коммиты.
Новые возможности
- Выпустите библиотеки адаптеров, чтобы поддержать Java и Rxjava.
Версия 1.1.0-альфа01
11 мая 2022 г.
androidx.window:window-*:1.1.0-alpha01
выпускается. Версия 1.1.0-alpha01 содержит эти коммиты.
Новые возможности
- Выпуск адаптеров для поддержки Java и Rxjava
Версия 1.1.0-альфа01
20 апреля 2022 г.
androidx.window:window:1.1.0-alpha01
выпускается. Версия 1.1.0-alpha01 содержит эти коммиты.
Новые возможности
- Исправляет ошибку, где фона приложение прекращает излучение функций сгиба.
- Расширить API экспериментального API.
Изменения API
- Общественный API, чтобы проверить, встраивается ли деятельность. ( I39eb7 )
Исправление ошибок
- Добавьте API, которые настраивают поведение отделки для контейнеров в расщеплениях активности ( i1a1e4 )
- Добавлена новая опция конфигурации для правил разделения активности. ( IEC6AF )
Версия 1.0
Версия 1.0.0
26 января 2022 г.
androidx.window:window-*:1.0.0
выпускается. Версия 1.0.0 содержит эти коммиты.
Основные особенности версии 1.0.0
- Поддержка складных телефонов через
WindowInfoTracker
иFoldingFeature
.WindowMetricsCalculator
чтобы помочь вычислять текущие WindowMetrics.
Версия 1.0.0-rc01
15 декабря 2021 г.
androidx.window:window-*:1.0.0-rc01
выпускается. Версия 1.0.0-rc01 содержит эти коммиты.
Новые возможности
- Добавьте поддержку для складных телефонов через
WindowInfoTracker
. - Добавьте методы для расчета текущей и максимальной
WindowMetrics
. - Добавьте вспомогательные испытательные API.
Версия 1.0.0-beta04
17 ноября 2021 г.
androidx.window:window-*:1.0.0-beta04
выпускается. Версия 1.0.0-BETA04 содержит эти коммиты.
Новые возможности
- Переименовать windowinforePository в windowinfotracker.
- Сделайте активность явной зависимостью метода для WindowInfotracker.
- Добавьте простую тестирование для WindowmetricsCalculator, чтобы поддержать разработчиков с помощью Robolectric.
Изменения API
- Экстракт расширения ( i25a5f )
- Добавить Isempty в ActivityStack ( i5a4e6 )
- Переименовать windowinforePository в windowinfotracker.
- Обновите Java/Rxjava/Testing зависимости, чтобы соответствовать. ( I0da63 )
- Добавьте правило тестирования для простого WindowmetricsCalculator. ( Ibacdb )
Версия 1.0.0-бета03
27 октября 2021 г.
androidx.window:window-*:1.0.0-beta03
выпускается. Версия 1.0.0-BETA03 содержит эти коммиты.
Новые возможности
- Добавить экспериментальную активность, встраивая API. Эта первоначальная версия макета позволяет показывать два действия рядом.
Изменения API
- Удалили API CurrentWindowMetrics, так как мы не можем предоставить его точно. Вместо этого используйте WindowmetricsCalculator ( ICDA5F )
- Обновлено API расширения. ( ICA92B )
- Добавлен интерфейс для новой функции, которая позволяет внедрять действия и показывает их бок о бок в окне родительской задачи. ( I5711d )
- Спрятали конструкторы для Windowmetrics и Windowlayoutinfo, используйте вместо этого тестовые API. ( I5a1b5 )
- Добавьте API, чтобы создать поддельные объекты Windowlayoutinfo. ( I4a2fd )
Исправление ошибок
- Исправлена утечка памяти. ( I3fc79 , b/202989046 )
Версия 1.0.0-beta02
1 сентября 2021 г.
androidx.window:window-*:1.0.0-beta02
выпускается. Версия 1.0.0-BETA02 содержит эти коммиты.
Новые возможности
- Добавьте экспериментальную аннотацию, чтобы аннотировать экспериментальные API. ( I9f1b6 )
- Добавьте метод испытаний, чтобы создать тестовую складную функцию, которая принимает прямо. Это заставит его тестировать при использовании Robolectric, в отличие от фактической деятельности. ( Id1cca )
Версия 1.0.0-бета01
18 августа 2021 г.
androidx.window:window-*:1.0.0-beta01
выпускается. Версия 1.0.0-beta01 содержит эти коммиты.
Новые возможности
- Удалили старые константы и превратили
FoldingFeature
в интерфейс.
Изменения API
- Удалите старые константы и сделайте складку и сделайте интерфейс. ( I9a2d5 )
Исправление ошибок
- Библиотеки, которые зависят от
Test Core
были обновлены до версии1.4.0
и теперь будут работать с версией Android Platform S. ( I88B72 , B/189353863 )
Версия 1.0.0-альфа10
4 августа 2021 г.
androidx.window:window-*:1.0.0-alpha10
выпускается. Версия 1.0.0-alpha10 содержит эти коммиты.
Новые возможности
- Переименовать windownforepo в windowinforePository и настраивать соответствующие классы / файлы.
- Преобразуйте токовые метрики окна в поток в WindowinForePository, так как значение меняется с течением времени.
- Переименовать windownforepojavaadapter в windowinforepocallbackadapter
- Добавить вспомогательный метод для создания объектов тестового складывания
- Обновление пакетов для групповых классов на основе функции, которую они поддерживают.
Изменения API
- Переименовать Activityext на ActivityExtensions Переход от репо в репозиторий. ( I61a16 )
- Обновить пакеты для занятий. ( I23ae2 )
- Удалить Windowmetrics из windownforepo ( i24663 )
- Удалить Windowmanager и использовать WindowinForePO
- Сделайте Windowbackend внутренним. ( I06D9A )
- Преобразовать показатели окон в теку.
- Переименовать адаптер Java в WindowinForePocallbackAdapter
- Удалите обратный сигнал, чтобы больше не использовались экспериментальные API. ( IA4D15 )
- Добавьте вспомогательный метод для создания функций тестового дисплея.
- Изменить от окклюзионного моде на окклюзионный тип ( if4cff )
Исправление ошибок
- Исправьте ошибку прогиарда, когда ясная библиотека удалялась.
- Исправлена ошибка, когда windowlayoutinfo не доставлялась дополнительным подписчикам.
- Исправлена ошибка, когда изменения конфигурации не будут запускать обновления функций складывания.
Версия 1.0.0-альфа09
30 июня 2021 г.
androidx.window:window-*:1.0.0-alpha09
выпускается. Версия 1.0.0-alpha09 содержит эти коммиты.
Новые возможности
- Переход от целочисленных постоянных на неограниченные перечисления.
- Добавьте тестовый утилит, чтобы создать функции складывания тестирования.
Изменения API
- Добавьте вспомогательный метод для создания функций тестового дисплея. ( I3cf54 )
- Изменить от
occlusionMode
наocclusionType
.
- Изменить от
Исправление ошибок
- Издайте начальное значение при добавлении нескольких потребителей потоков данных.
Версия 1.0.0-альфа08
16 июня 2021 г.
androidx.window:window-*:1.0.0-alpha08
выпускается. Версия 1.0.0-alpha08 содержит эти коммиты.
Новые возможности
- Выпустил артефакт тестирования, чтобы облегчить тестирование при использовании WindowinForePository. Используйте windowinforePository, чтобы получить информацию о фиксациях отображения и Windowmetrics. ( I57f66 , ida620 )
Версия 1.0.0-альфа07
2 июня 2021 г.
androidx.window:window-*:1.0.0-alpha07
выпускается. Версия 1.0.0-alpha07 содержит эти коммиты.
Новые возможности
- Мигрируйте библиотеку ядра в Котлин. Будет использовать CORUTINES и приостановить функции для раскрытия асинхронных данных в будущем.
- Добавьте windowinforepo в качестве основной точки взаимодействия для получения Windowmetrics и потока Windowlayoutinfo.
- Новый артефакт
window-java
для разоблачения API, удобных для Java, для регистрации и отмены обратных вызовов. - Новые артефакты
window-rxjava2
иwindow-rxjava3
для выставки Rxjava адаптированных API.
Изменения API
- Добавьте
WindowServices
чтобы обеспечить зависимости равномерно.- Добавьте API на основе Coroutine, чтобы употреблять информацию о макете окна. ( IAB70F )
- Мигрируйте библиотеку менеджера по основному управлению в Котлин. ( ICCA34 )
Исправление ошибок
- Добавьте новый класс данных, чтобы представить границы функций. ( I6dcd1 )
Версия 1.0.0-альфа06
5 мая 2021 г.
androidx.window:window:1.0.0-alpha06
выпускается. Версия 1.0.0-alpha06 содержит эти коммиты.
Новые возможности
- Мы начали нашу миграцию в Котлин и закончим в следующем релизе.
- Devicestate был удален из публичного API, пожалуйста, используйте вместо этого FoldingFeature.
- Мы удалили
STATE_FLIPPED
из состояний складного отличия, поскольку в данный момент он не поддерживается каким-либо вариантом использования. - Мы также удалили другие устаревшие API.
Изменения API
- Добавление котлина в качестве зависимости.
- Мигрировать основную библиотеку в Котлин. ( IDD995 )
- Удаленное строитель
DisplayFeature
. ( I61fa4 ) - Удален
DeviceState
из публичного API, используйте вместо этогоFoldingFeature
. ( ID6079 ) - Удалить обратный вызов состояния устройства из расширений. ( I5ea83 )
- Удалите
STATE_FLIPPED
из FoldingFeature. ( I9c4e1 ) - Удалить устаревшие методы регистрации. ( IB381B )
Версия 1.0.0-альфа05
24 марта 2021 г.
androidx.window:window:1.0.0-alpha05
выпускается. Версия 1.0.0-alpha05 содержит эти коммиты.
Новые возможности
Мы добавили удобные методы к складыванию, чтобы приложения могли определить, разделяет ли функция, окклюзирует и определяет ориентацию шарнира. Мы также скрываем тип шарнира, чтобы
Мы удаляем методы синхронного чтения от Windowmanager. Синхронные методы чтения подвержены ошибкам, так как существует неявное условие гонки. Зарегистрируйте слушатели и обратные вызовы для получения обновлений в Windowlayoutinfo.
Изменения API
- Добавьте удобные методы для работы с FoldingFeatures ( IE733F )
- Удаляет методы синхронного чтения от Windowmanager ( i96fd4 )
Версия 1.0.0-альфа04
10 марта 2021 г.
androidx.window:window:1.0.0-alpha04
выпускается. Версия 1.0.0-alpha04 содержит эти коммиты.
Новые возможности
- Исправляет ошибку, в которой Windowlayoutinfo не испускается, если нет реализации OEM. Теперь мы излучаем пустую windowlayoutinfo.
- Исправьте ошибку, в которой состояние не обновляется должным образом, если бы состояние шарнира изменилось, когда приложение было фоне. Теперь государство должно быть последовательным.
- Обновите наши файлы Proguard, чтобы игнорировать предупреждения от зависимостей времени выполнения.
Исправление ошибок
- Излучайте пустое значение, когда библиотека OEM отсутствует. ( IDE935 )
Версия 1.0.0-альфа03
18 февраля 2021 г.
androidx.window:window:1.0.0-alpha03
выпускается. Версия 1.0.0-alpha03 содержит эти коммиты.
Новые возможности
- Издайте пустое значение для Windowlayoutinfo, когда реализация OEM пуста. Это должно облегчить использование библиотеки на большем количестве устройств. Поскольку API являются асинхронными, все еще рекомендуется, чтобы приложения написали немного защитного кода и испускали значение по умолчанию после тайм -аута. У нас нет никаких гарантий на реализации OEM, и начальное значение может быть отложено.
Исправление ошибок
- Излучайте пустое значение, когда библиотека OEM отсутствует. ( IDE935 )
Версия 1.0.0-альфа02
27 января 2021 г.
androidx.window:window:1.0.0-alpha02
выпускается. Версия 1.0.0-alpha02 содержит эти коммиты.
Новые возможности
Мы установили некоторые API, чтобы помочь упростить API и уменьшить ошибки. Некоторые примечательные примеры - удаление синхронных операций чтения из Windowmanager и выходить из Devicestate. Синхронные операции чтения могут привести к условиям гонки и иметь неверный пользовательский интерфейс.
Мы преобразовали DisplayFeature в интерфейс, который будут реализовать другие функции в будущем. Наша первая функция - FoldingFeature, которая теперь является представлением экрана сгиба или шарнира. Это также содержит состояние шарнира, заменяющего Devicestate.
Windowmetrics была введена в Android 11, чтобы предоставить разработчикам простой способ запроса метрик о окне, например, его положение и размер на экране и любые системы системы. Мы вернули API в этом выпуске, чтобы разработчики могли использовать Windowmetrics и продолжать поддерживать старые версии Android. Windowmetrics можно получить через
WindowManager#getCurrentWindowMetrics()
и Windowmanager#getMaximumWindowMetrics () API.
Изменения API
- Установите API, которые будут удалены в следующей альфа ( IB7CC4 )
- Обновления
ExtensionInterface
, чтобы принять явные ссылки на деятельность. ( I07ded ) - Представляет API Windowmetrics. ( I3ccee )
- Удалить методы синхронного чтения из Windowmanager ( i69983 )
- Сделайте защиту пакета ExtensionWindowBackend. ( IED208 )
Исправление ошибок
- Обновить API
ExtensionInterface
для принятия визуального контекста. ( I8e827 )
Внешний вклад
- Merge Devicestate и Windowlayoutinfo, так что его легче получить доступ к данным. ( ID34F4 )
Версия 1.0.0-альфа01
27 февраля 2020 г.
androidx.window:window:1.0.0-alpha01
и androidx.window:window-extensions:1.0.0-alpha01
выпускаются. Версия 1.0.0-alpha01 содержит эти коммиты. Это первый выпуск библиотеки Window Manager.
Новые возможности
-
DisplayFeature
: этот новый API идентифицирует сбои на непрерывных поверхностях плоского экрана, таких как петли или складки -
DeviceState
: Этот новый API предоставляет текущую осадку телефона из списка определенных позов (например,CLOSED
,OPENED
,HALF_OPENED
и т. Д.)