Оконный менеджер
Последнее обновление | Стабильный выпуск | Кандидат на выпуск | Бета-версия | Альфа-релиз |
---|---|---|---|---|
23 апреля 2025 г. | 1.3.0 | 1.4.0-rc02 | - | 1.5.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.5
Версия 1.5.0-альфа01
12 марта 2025 г.
Выпущен androidx.window:window-*:1.5.0-alpha01
. Версия 1.5.0-alpha01 содержит эти коммиты .
Новые возможности
- Первоначальный выпуск следующей версии 1.5.0.
Версия 1.4
Версия 1.4.0-rc02
23 апреля 2025 г.
Выпущен androidx.window:window-*:1.4.0-rc02
. Версия 1.4.0-rc02 содержит эти коммиты .
Исправления ошибок
- Исправлен сбой proguard для
ActivityEmbedding
.
Версия 1.4.0-rc01
12 марта 2025 г.
androidx.window:window-*:1.4.0-rc01
выпущен. Версия 1.4.0-rc01 содержит эти коммиты .
Новые возможности
- Обновления API
WindowSizeClass
. - Обновления API-интерфейсов внедрения действий.
Версия 1.4.0-бета02
12 февраля 2025 г.
Выпущен androidx.window:window-*:1.4.0-beta02
. Версия 1.4.0-beta02 содержит эти коммиты .
Новые возможности
- Исправьте аннотацию, которая была только в свойстве, но не в методе получения.
Версия 1.4.0-бета01
15 января 2025 г.
Выпущен androidx.window:window-*:1.4.0-beta01
. Версия 1.4.0-beta01 содержит эти коммиты .
Новые возможности
- Добавьте API, позволяющий настраивать анимацию
ActivityEmbedding
. - Разверните API-интерфейсы тестирования
WindowMetricsCalculator
, чтобы разрешить подделку показателей окна.
Изменения API
- Скрыть несколько конструкторов ( I87b8d )
- Разрешить приложениям настраивать анимацию
ActivityEmbedding
( If31a8 ). - Добавляет поддержку целевого объекта
watchosDeviceArm64
KMP и целевого объекта Kotlin 1.9 ( Icf15d , b/364652024 ). - Предоставьте API-интерфейсы
WindowMetricsCalculator
. ( I1cebf )
Исправления ошибок
- Эта библиотека теперь использует аннотации NULL NULL JSpecify , которые являются типизированными. Разработчики Kotlin должны использовать следующие аргументы компилятора для обеспечения правильного использования:
-Xjspecify-annotations=strict
,-Xtype-enhancement-improvements-strict-mode
( Ie69ac , b/326456246 ).
Версия 1.4.0-альфа05
16 октября 2024 г.
Выпущен androidx.window:window-*:1.4.0-alpha05
. Версия 1.4.0-alpha05 содержит эти коммиты .
Новые возможности
- Добавьте удобные функции для получения
widthDp
иheightDp
изWindowMetrics
.
Изменения API
- Добавьте
widthDp
иheightDp
вWindowMetrics
. ( Иде026 ) - Удалите экспериментальный API
WindowInsets
. ( I68a71 ) - Обновить имена методов проверки границ на
isAtLeast
( Ib0ab7 )
Версия 1.4.0-альфа04
2 октября 2024 г.
Выпущен androidx.window:window-*:1.4.0-alpha04
. Версия 1.4.0-alpha04 содержит эти коммиты .
Изменения API
- Добавлен метод вычисления
WindowSizeClass
изWindowMetrics
. ( 874 дБА ) - Для ясности измените методы
WindowSizeClass
наcontainsWidthDp
,containsHeightDp
иcontainsWindowSizeDp
. ( fa760d ) - Преобразуйте
WindowAreaController
в абстрактный базовый класс. ( I90893 )
Исправления ошибок
- Добавьте поддержку относительных границ при создании теста
FoldingFeature
. ( 2e6b3e ) - Общие исправления ошибок при выборе
WindowSizeClass
.
Версия 1.4.0-альфа03
18 сентября 2024 г.
Выпущен androidx.window:window-*:1.4.0-alpha03
. Версия 1.4.0-alpha03 содержит эти коммиты .
Новые возможности
- Добавьте служебный метод для получения
WindowSizeClass
изWindowMetrics
. ( I83f1f ) - Переименуйте
isAtLeast
вcontainsBreakpoint
. ( I85b47 ) - Добавьте перегрузку в
computeWindowSizeClass
, используя числа с плавающей запятой. ( I3dcb2 , б/364677934 , б/364677802 , б/364680886 )
Исправления ошибок
- Добавьте отсутствующие точки останова в набор точек останова
WindowSizeClass
по умолчанию. - Исправлена ошибка, из-за которой в некоторых случаях компактные размеры выбирались неправильно.
Версия 1.4.0-альфа02
4 сентября 2024 г.
Выпущен androidx.window:window-*:1.4.0-alpha02
. Версия 1.4.0-alpha02 содержит эти коммиты .
Новые возможности
Добавьте поддержку пользовательского WindowSizeClass
.
- Откройте конструктор
WindowSizeClass
, чтобы разработчики могли использовать свой собственный. - Добавьте служебные методы
isAtLeast
, чтобы разработчики могли обрабатывать диапазон значенийWindowSizeClass
. - Добавьте функцию расширения для
Set<WindowSizeClass>
, чтобы вычислить наилучшее соответствие из Set. - Добавьте константы для рекомендуемых Android точек останова.
- Добавьте набор точек останова, соответствующий рекомендуемым точкам останова Android.
Изменения API
- Обновите имена методов границ для
WindowSizeClass
. ( Если89а6 ) - Обновите API
WindowSizeClass
, чтобы в будущем поддерживать добавление новых значений точек останова. Вместо абсолютных границ мы используем нижние границы и рекомендуем разработчикам использовать проверки нижних границ при обработкеWindowSizeClass
. Существующие классыWindowWidthSizeClass
иWindowHeightSizeClass
станут устаревшими, поскольку они не будут развиваться дальше. ( I014ce )
Версия 1.4.0-альфа01
7 августа 2024 г.
Выпущен androidx.window:window-*:1.4.0-alpha01
. Версия 1.4.0-alpha01 содержит эти коммиты .
Новые возможности
- ActivityStack Pinning позволяет приложениям закреплять контент в одном контейнере и изолировать навигацию от другого контейнера.
- Интерактивный разделитель позволяет приложениям отображать фиксированный или перетаскиваемый разделитель между двумя действиями в разделенной презентации.
- Полноэкранное затемнение диалога позволяет приложениям указывать затемненную область диалогового окна, чтобы либо затемнить все окно задачи, либо затемнить только контейнер, в котором отображается диалоговое окно.
- Обратный вызов встроенной информации об окне активности позволяет приложениям постоянно получать обновления встроенного окна активности.
- Внедрение фона анимации позволяет приложениям указывать фон анимации, улучшая качество анимации перехода при использовании
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-beta02
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
для поддержки модульного тестирования при внедрении действий.
Изменения 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
в Pixels отdisplayMetrics#density
.
-
- Константы отделки поведения должны быть перенесены в отдел, как
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
. Другие свойства перемещаются на сетеры. Для получения подробной информации см. -
setFinishPrimaryWithPlaceholder
беретFinishBehavior
константы, подобные перечислению, подобные Enum. Смотрите «Миграции Splitrule» для получения подробной информации. -
setLayoutDirection(layoutDirection)
иsetSplitRatio(ratio)
к:kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
- Используйте
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)
, чтобы показать расколы на портретных устройствах.
- Имеет только
Версия 1.1.0-Alpha06
22 февраля 2023 года
androidx.window:window-*:1.1.0-alpha06
выпускается. Версия 1.1.0-Alpha06 содержит эти коммиты.
Новые возможности
- Разместите экспериментальную версию получения
WindowLayoutInfo
из контекста пользовательского интерфейса.
API меняется
- Добавьте
splitSupportStatus
, чтобы указать, доступно ли встраивание активности. ( I10024 ) - Сделайте UI Context
WindowLayoutInfo
API как экспериментальный. ( I58ee0 ) - Представляет
WindowAreaController
и API, чтобы разрешить режимRearDisplay
перемещать текущее окно на дисплей, который выровнен с задней камерой. ( Iffcbf ) - Обновить цвет фона по умолчанию. ( I1ac1b )
- Добавить
SplitAttributes
Params. ( I18bdd ) - Добавьте API для
SplitRule
,SplitAttributes
,SplitAttributesCalculator
. ( I92d23 ) - Улучшить API вокруг
maxAspectRatio
:- Замените
alwaysAllow()
иALWAYS_ALLOW
alwaysDisallow()
наALWAYS_DISALLOW
. - Обновите документацию API @See с автономной документацией. ( I3057b )
- Замените
- Следующие конструкторы удаляются из публичных API, потому что они не должны вызывать приложениями.
-
SplitInfo
Constructor -
ActivityStack
Constructor ( IDE534 )
-
-
SplitRule
теперь принимаетmaxAspectRatioInPortrait/Landscape
. Это позволяет разделиться действия, только когда соотношение сторон родительских границ меньше или равно запрошенномуmaxAspectRatio
. ( IA5990 ) - Изменить
RuleController#parseRules
на статичные ( i785df ) - Улучшить API -интерфейсы вокруг ActivityBedding
- Выровняйте именование API - используйте добавить/удалить для нескольких экземпляров:
- Изменения
registerRule
вaddRule
-
unregisterRule
изменения вremoveRule
- Заменить
getSplitRules
наgetRules
, так какActivityRule
не является правилом разделения - Добавить
RuleController#setRules
, чтобы установить кучу правил - Извлечение правил, связанные с API, от
SplitController
в SingletonRuleController
. Они есть: -
addRule
-
removeRule
-
getRules
-
setRules
-
clearRules
-
parseRules
- Extract
#isActivityEmbedded
отSplitController
в SingletonActivityEmbeddingController
. Они есть: -
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)
)
- Улучшить APIS Splitrule:
- Возьмите минимальные размеры в DP вместо пикселей для
SplitRule
. - Рефактор для
SplitRule
Builder, чтобы принимать минимальные размеры как необязательные. ( I95f17 )
- Возьмите минимальные размеры в DP вместо пикселей для
- Передайте контекст для инициализации
SplitController
( I42549 ) - Переименован
SplitRule#layoutDir
to#layoutDirection
иSplitRule Builder#setLayoutDir
toBuilder#setLayoutDirection
. ( I3f6d1 )
Версия 1.1.0-Alpha04
9 ноября 2022 года
androidx.window:window-*:1.1.0-alpha04
выпускается. Версия 1.1.0-Alpha04 содержит эти коммиты.
Новые возможности
- Распределите метод, чтобы определить, является ли
ActivityStack
пустым дляActivityEmbedding
. - Удаленные экспериментальные теги API из
ActivityEmbedding
API. - Скрыть конструктор
ActivityRule
какBuilder
является предпочтительным способом построения. - Добавьте экспериментальный метод, чтобы получить
WindowInsets
наWindowMetrics
. - Обновить
SplitPlaceholderFinishBehavior
, чтобы предотвратить завершение заполнителя. Заполнение заполнителя вызвало некоторое запутанное поведение.
API меняется
- Сделайте Val
isEmpty
Public, чтобы заменить забавнуюisEmpty
. - Переименовать действия параметров
ActivityStack
в действиеactivitiesInProcess
. ( IA5055 ) - Удалите
ActivityFilter#matchesClassName
иActivityFilter#matchesClassNameOrWildCard
потому что они сбивают с толку. - Добавить
ActivityFilter#componentName
AbsdActivityFilter#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-Alpha03
27 июля 2022 года
androidx.window:window-*:1.1.0-alpha03
выпускается. Версия 1.1.0-Alpha03 содержит эти коммиты.
Новые возможности
- Обновите значения по умолчанию для внедрения правил.
API меняется
- Обновить значения по умолчанию для внедрения свойств правил. ( IC4D35 )
Версия 1.1.0-Alpha02
11 мая 2022 года
androidx.window:window-*:1.1.0-alpha02
выпускается. Версия 1.1.0-Alpha02 содержит эти коммиты.
Новые возможности
- Выпустите библиотеки адаптеров, чтобы поддержать Java и Rxjava.
Версия 1.1.0-Alpha01
11 мая 2022 года
androidx.window:window-*:1.1.0-alpha01
выпускается. Версия 1.1.0-Alpha01 содержит эти коммиты.
Новые возможности
- Выпуск адаптеров для поддержки Java и Rxjava
Версия 1.1.0-Alpha01
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-бета04
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-бета02
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-Alpha10
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-Alpha09
30 июня 2021 года
androidx.window:window-*:1.0.0-alpha09
выпускается. Версия 1.0.0-Alpha09 содержит эти коммиты.
Новые возможности
- Переход от целочисленных постоянных на неограниченные перечисления.
- Добавьте тестовый утилит, чтобы создать функции складывания тестирования.
API меняется
- Добавьте вспомогательный метод для создания функций тестового дисплея. ( I3cf54 )
- Изменить от
occlusionMode
наocclusionType
.
- Изменить от
Исправления ошибок
- Издайте начальное значение при добавлении нескольких потребителей потоков данных.
Версия 1.0.0-Alpha08
16 июня 2021 года
androidx.window:window-*:1.0.0-alpha08
выпускается. Версия 1.0.0-Alpha08 содержит эти коммиты.
Новые возможности
- Выпустил артефакт тестирования, чтобы облегчить тестирование при использовании WindowinForePository. Используйте windowinforePository, чтобы получить информацию о фиксациях отображения и Windowmetrics. ( I57f66 , ida620 )
Версия 1.0.0-Alpha07
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-Alpha06
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-Alpha05
24 марта 2021 года
androidx.window:window:1.0.0-alpha05
выпускается. Версия 1.0.0-Alpha05 содержит эти коммиты.
Новые возможности
Мы добавили удобные методы к складыванию, чтобы приложения могли определить, разделяет ли функция, окклюзирует и определяет ориентацию шарнира. Мы также скрываем тип шарнира, чтобы
Мы удаляем методы синхронного чтения от Windowmanager. Синхронные методы чтения подвержены ошибкам, так как существует неявное условие гонки. Зарегистрируйте слушатели и обратные вызовы для получения обновлений в Windowlayoutinfo.
API меняется
- Добавьте удобные методы для работы с FoldingFeatures ( IE733F )
- Удаляет методы синхронного чтения от Windowmanager ( i96fd4 )
Версия 1.0.0-Alpha04
10 марта 2021 года
androidx.window:window:1.0.0-alpha04
выпускается. Версия 1.0.0-Alpha04 содержит эти коммиты.
Новые возможности
- Исправляет ошибку, в которой Windowlayoutinfo не испускается, если нет реализации OEM. Теперь мы излучаем пустую windowlayoutinfo.
- Исправьте ошибку, в которой состояние не обновляется должным образом, если бы состояние шарнира изменилось, когда приложение было фоне. Теперь государство должно быть последовательным.
- Обновите наши файлы Proguard, чтобы игнорировать предупреждения от зависимостей времени выполнения.
Исправления ошибок
- Излучайте пустое значение, когда библиотека OEM отсутствует. ( IDE935 )
Версия 1.0.0-Alpha03
18 февраля 2021 года
androidx.window:window:1.0.0-alpha03
выпускается. Версия 1.0.0-Alpha03 содержит эти коммиты.
Новые возможности
- Издайте пустое значение для Windowlayoutinfo, когда реализация OEM пуста. Это должно облегчить использование библиотеки на большем количестве устройств. Поскольку API являются асинхронными, все еще рекомендуется, чтобы приложения написали немного защитного кода и испускали значение по умолчанию после тайм -аута. У нас нет никаких гарантий на реализации OEM, и начальное значение может быть отложено.
Исправления ошибок
- Излучайте пустое значение, когда библиотека OEM отсутствует. ( IDE935 )
Версия 1.0.0-Alpha02
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-Alpha01
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
и т. Д.)
Windowmanager
Последнее обновление | Стабильный релиз | Выпустить кандидата | Бета -версия | Альфа -релиз |
---|---|---|---|---|
23 апреля 2025 г. | 1.3.0 | 1.4.0-RC02 | - | 1.5.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 лучше. Дайте нам знать, если вы обнаружите новые проблемы или у вас есть идеи для улучшения этой библиотеки. Пожалуйста, посмотрите на существующие проблемы в этой библиотеке, прежде чем создать новую. Вы можете добавить свой голос к существующей проблеме, нажав кнопку Star.
Смотрите документацию по трекеру проблемы для получения дополнительной информации.
Версия 1.5
Версия 1.5.0-Alpha01
12 марта 2025 года
androidx.window:window-*:1.5.0-alpha01
выпускается. Версия 1.5.0-Alpha01 содержит эти коммиты .
Новые возможности
- Первоначальный выпуск следующего 1.5.0.
Версия 1.4
Версия 1.4.0-RC02
23 апреля 2025 г.
androidx.window:window-*:1.4.0-rc02
выпущено. Версия 1.4.0-RC02 содержит эти коммиты .
Исправления ошибок
- Исправьте прогровой аварию для
ActivityEmbedding
.
Версия 1.4.0-RC01
12 марта 2025 года
androidx.window:window-*:1.4.0-rc01
выпускается. Версия 1.4.0-RC01 содержит эти коммиты .
Новые возможности
- Обновления API
WindowSizeClass
. - Обновления активности, встраиваемые с API.
Версия 1.4.0-бета02
12 февраля 2025 года
androidx.window:window-*:1.4.0-beta02
выпускается. Версия 1.4.0-бета02 содержит эти коммиты .
Новые возможности
- Исправьте аннотацию, которая была только на собственности, но не на Getter.
Версия 1.4.0-бета01
15 января 2025 года
androidx.window:window-*:1.4.0-beta01
выпускается. Версия 1.4.0-бета01 содержит эти коммиты .
Новые возможности
- Добавьте API, чтобы разрешить настройку анимации
ActivityEmbedding
. - Расширить API -интерфейсы тестирования
WindowMetricsCalculator
, чтобы позволить притворяться метриками окна.
API меняется
- Скрыть несколько конструкторов ( i87b8d )
- Разрешить приложения настраивать анимации
ActivityEmbedding
( IF31A8 ) - Добавляет поддержку
watchosDeviceArm64
KMP Target и Target Kotlin 1.9 ( ICF15D , B/364652024 ) - Разоблачить API API
WindowMetricsCalculator
. ( I1cebf )
Исправления ошибок
- В этой библиотеке теперь используются аннотации jspecify Nullness , которые являются типовым использованием. Разработчики Kotlin должны использовать следующие аргументы компилятора для обеспечения правильного использования:
-Xjspecify-annotations=strict
,-Xtype-enhancement-improvements-strict-mode
( IE69AC , B/326456246 )
Версия 1.4.0-Alpha05
16 октября 2024 года
androidx.window:window-*:1.4.0-alpha05
выпускается. Версия 1.4.0-Alpha05 содержит эти коммиты .
Новые возможности
- Добавьте удобные функции, чтобы получить
widthDp
иheightDp
отWindowMetrics
.
API меняется
- Добавьте
widthDp
иheightDp
вWindowMetrics
. ( IDE026 ) - Удалите экспериментальный API
WindowInsets
. ( I68a71 ) - Обновление границ проверки имен методов на
isAtLeast
( IB0AB7 )
Версия 1.4.0-Alpha04
2 октября 2024 года
androidx.window:window-*:1.4.0-alpha04
выпускается. Версия 1.4.0-Alpha04 содержит эти коммиты .
API меняется
- Добавлен метод для вычисления
WindowSizeClass
изWindowMetrics
. ( 874dba ) - Измените методы
WindowSizeClass
наcontainsWidthDp
,containsHeightDp
иcontainsWindowSizeDp
для ясности. ( FA760D ) - Преобразовать
WindowAreaController
в абстрактный базовый класс. ( I90893 )
Исправления ошибок
- Добавьте поддержку относительных границ при создании тестового
FoldingFeature
. ( 2e6b3e ) - Общие исправления ошибки при выборе
WindowSizeClass
.
Версия 1.4.0-Alpha03
18 сентября 2024 года
androidx.window:window-*:1.4.0-alpha03
выпускается. Версия 1.4.0-Alpha03 содержит эти коммиты .
Новые возможности
- Добавьте метод утилиты, чтобы получить
WindowSizeClass
отWindowMetrics
. ( I83f1f ) - Переименуйте
isAtLeast
вcontainsBreakpoint
. ( I85b47 ) - Добавьте перегрузку в
computeWindowSizeClass
с помощью Floats. ( I3dcb2 , b/364677934 , b/364677802 , b/364680886 )
Исправления ошибок
- Добавьте отсутствующие точки останова в набор точки
WindowSizeClass
по умолчанию по умолчанию. - Исправлена ошибка, в которой в некоторых случаях не выбираются компактные размеры.
Версия 1.4.0-Alpha02
4 сентября 2024 года
androidx.window:window-*:1.4.0-alpha02
выпускается. Версия 1.4.0-Alpha02 содержит эти коммиты .
Новые возможности
Добавьте поддержку для пользовательского WindowSizeClass
.
- Откройте конструктор для
WindowSizeClass
, чтобы разработчики могли использовать свой собственный. - Добавьте методы утилиты
isAtLeast
, чтобы разработчики могли обрабатывать диапазон значенийWindowSizeClass
. - Добавьте функцию расширения в
Set<WindowSizeClass>
, чтобы вычислить лучшее совпадение из набора. - Добавьте константы для рекомендуемых Android -точек.
- Добавьте набор точек останова, соответствующий рекомендуемым Android -точкам.
API меняется
- Обновить имена методов обновления для
WindowSizeClass
. ( If89a6 ) - Обновите API
WindowSizeClass
, чтобы поддержать добавление новых значений точки останова в будущем. Вместо того, чтобы иметь абсолютные границы, мы используем нижние границы и рекомендуем разработчикам использовать нижнюю границу проверки при обработкеWindowSizeClass
. СуществующиеWindowWidthSizeClass
иWindowHeightSizeClass
будут устареть, поскольку они не будут развиваться дальше. ( I014ce )
Версия 1.4.0-Alpha01
7 августа 2024 года
androidx.window:window-*:1.4.0-alpha01
выпускается. Версия 1.4.0-Alpha01 содержит эти коммиты .
Новые возможности
- Пиннинг ActivityStack позволяет приложениям прикреплять контент в одном контейнере и выделять навигацию из другого контейнера.
- Interactive Divider позволяет приложениям отображать фиксированную или перетаскиваемую разделитель между двумя действиями в разделенной презентации.
- Полноэкранное диалоговое за Fum Limming позволяет приложениям указать область DIGAG DIM, либо размять все окно задачи, либо только размять контейнер, который показывает диалоговое окно.
- Встроенный окно активности Информация о обратном вызове позволяет приложениям постоянно получать обновления встроенного окна активности.
- Встроенный фон анимации позволяет приложениям указывать фон анимации, улучшая качество анимации перехода при использовании
ActivityEmbedding
. - Улучшение управления ActivityStack позволяет приложениям иметь больше контроля над
ActivityStacks
, когда используетсяActivityEmbedding
, включая: - Запуск деятельности в указанный
ActivityStack
- Завершение
ActivityStack
API меняется
Новый API
WindowInfoTracker#supportedPostures
- API, чтобы определить, поддерживает ли устройство режим настольного режима для складываемых. Добавляет windowareasessionPresenter#GetWindow
Добавьте API в поддержку Pinning
ActivityStack
:-
SplitPinRule
Class -
SplitController#pinTopActivityStack
-
SplitController#unpinTopActivityStack
-
Добавить API, чтобы включить и настроить интерактивное разделитель
-
DividerAttributes
Class -
SplitAttributes.Builder#setDividerAttributes
-
Добавить API для установки
EmbeddingConfiguration
иDimAreaBehavior
для диалогов- Класс
EmbeddingConfiguration
-
DimAreaBehavior
Class -
ActivityEmbeddingController#setEmbeddingConfiguration
- Класс
Добавить API для получения встроенных обновлений окна активности
-
EmbeddedActivityWindowInfo
Class -
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 )
Исправления ошибок
- Исправляет ошибку на определенных устройствах, где недоступные будут возвращены вместо активности, когда сеанс активен.
- Удаляет поддержку
transferActivityToWindowArea
на устройствах сvendorApiLevel
2 из 2 из -за нестабильной поддержки API. - Введите API, чтобы включить Drag-to-FullScreen для активности, внедряющего драгбейный разделитель. ( I645c9 )
- Позвольте приложениям отключить анимацию
ActivityEmbedding
через анимационные параметры дляSplitAttributes
. ( IDC01A ) - Удаленное руководство по описанию доступа к новым API платформы, так как это происходит автоматически с помощью моделирования API при использовании R8 с AGP 7.3 или более поздней версии (например, версия R8 3.3) и для всех сборок при использовании AGP 8.1 или более поздней версии (например, версия D8 8.1). Клиентам, которые не используют AGP, рекомендуется обновлять D8 версию 8.1 или более поздней версии. Смотрите эту статью для получения более подробной информации. ( IA60E0 , B/345472586 )
- Позвольте расширениям принимать анимационные параметры для
SplitAttributes
, чтобы устройство могло использовать его для анимационных переходов. ( Iede00 ) - Скрыть API наложения ( IC4251 )
- Введите API для настройки фиксированного или перетаскиваемого разделителя для разделения ( IA7A78 )
- Добавлена плотность к
WindowMetrics
( ID6723 ) - Добавьте API, чтобы получить
SupportedPostures
. ( If557a ) - Удалить
setLaunchingActivityStack
из экспериментального API ( I191CF ) - Введение
ActivityEmbeddingController#embeddedActivityWindowInfo
( I24312 ) - Установите
#getToken
и добавьте#getActivityStackToken
( IE0471 ) - Введите адаптер обратного вызова для
embeddedActivityWindowInfo
Flow API ( IDA77F ) - Добавить адаптер обратного вызова для API потока Overtayinfo ( i7264f )
- Введите
WindowSdkExtensionsRule
, чтобы переопределитьextensionsVersion
для тестирования. ( IFB928 ) - - Перенос
#setLaunchingActivityStack
, чтобы объединить, чтобы совместно с использованием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 )
- - Добавление PIN/Uncin Top
ActivityStack
androidx.Window
APIS- Обновление демонстрационного приложения, чтобы разрешить PIN/UNCIN Top
ActivityStack
( i24DD3 )
- Обновление демонстрационного приложения, чтобы разрешить PIN/UNCIN Top
- Повторно добавить
#finishActivityStacks
иActivityEmbeddingOptions
( IC1AB3 ) - Удалите нестабильные API. ( IBC534 , B/302380585 )
Версия 1.3
Версия 1.3.0
29 мая 2024 года
androidx.window:window-*:1.3.0
выпускается. Версия 1.3.0 содержит эти коммиты .
Важные изменения с 1.2.0
- Котлин многоплатформенная поддержка для классов размера окна.
Версия 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-бета02 содержит эти коммиты .
API меняется
- Удалить поддержку для создания и использования пользовательского
WindowSizeClass
. ( ID1143 )
Исправления ошибок
- Исправляет
KotlinReflectionInternalError
, вызванный прогидом, вычислил некоторые файлы на определенных реализациях устройства. ( I01b02 )
Версия 1.3.0-бета01
3 апреля 2024 года
androidx.window:window-*:1.3.0-beta01
выпускается. Версия 1.3.0-бета01 содержит эти коммиты .
Версия 1.3.0-Alpha03
6 марта 2024 года
androidx.window:window-*:1.3.0-alpha03
выпускается. Версия 1.3.0-Alpha03 содержит эти коммиты .
API меняется
- Разделите
WindowSizeClassUtil
на более сфокусированные методы. ( IE9292 ) - Восстановить
WindowSizeClass#compute
( i21355 , b/324293374 )
Исправления ошибок
- Исправляет сбой, где предоставленный контекст не был развернут правильно. ( 94d10ce , b/318787482 )
Версия 1.3.0-Alpha02
7 февраля 2024 года
androidx.window:window-*:1.3.0-alpha02
выпускается. Версия 1.3.0-Alpha02 содержит эти коммиты.
Новые возможности
- Обновления, сделанные для API -поверхности API класса размера окна, для повышения гибкости для разработчиков, которые хотят использовать свои классы собственного размера.
API меняется
- Добавьте ограничения высоты в селектор ширины. ( I23393 )
- Добавьте функции утилиты для выбора
WindowSizeClass
из набора. Добавьте экспериментальные функции оценки, чтобы разработчики могли написать своих собственных селекторов. Добавьте функцию расширения сектора, чтобы выбрать самый широкийWindowSizeClass
в данной границе. ( I0c944 ) - Откройте конструктор
WindowSizeClass
, чтобы можно было добавить пользовательские точки останова. ( IC1FF3 ) - Добавьте удобную функцию, чтобы создать класс размера из ширины, высоты и плотности. ( If67f4 )
Исправления ошибок
- Исправьте исключение, когда значение поплавки усечено до 0. ( 272ffac )
Версия 1.3.0-Alpha01
15 ноября 2023 г.
androidx.window:window-*:1.3.0-alpha01
выпускается. Версия 1.3.0-Alpha01 содержит эти коммиты.
Новые возможности
- Выставьте экспериментальные APIS для доступа к заднему экрану.
- Test APIs for creating a
FoldingFeature
is now stable. - Test APIs for setting up fake
ActivityEmbedding
values are now stable. -
WindowLayoutInfoPublisherRule
now reports the override when obtaining a value from aUiContext
. -
WindowInfoTracker
reports folding feature data toUiContext
parameters. - Expose the Extensions Version on the device.
-
WindowProperties
constants for user per-app overrides:-
PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_OVERRIDE
— Informs the system the app has opted out of the user-facing aspect ratio compatibility override. -
PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_FULLSCREEN_OVERRIDE
— Informs the system the app has opted out of the full-screen option of the user aspect ratio compatibility override settings
-
Version 1.2
Version 1.2.0
15 ноября 2023 г.
androidx.window:window-*:1.2.0
is released. Version 1.2.0 contains these commits.
Important changes since 1.1.0
- Expose experimental window APIs for accessing the rear screen.
- Test APIs for creating a
FoldingFeature
is now stable. - Test APIs for setting up fake
ActivityEmbedding
values are now stable. -
WindowLayoutInfoPublisherRule
now reports the override when obtaining a value from aUiContext
. -
WindowInfoTracker
reports folding feature data toUiContext
parameters. - Expose the Extensions Version on the device.
Version 1.2.0-rc01
November 1, 2023
androidx.window:window-*:1.2.0-rc01
is released. Version 1.2.0-rc01 contains these commits.
Новые возможности
- Expose experimental window APIs for accessing the rear screen.
- Test APIs for creating a
FoldingFeature
is now stable. - Test APIs for setting up fake
ActivityEmbedding
values are now stable. -
WindowLayoutInfoPublisherRule
now reports the override when obtaining a value from aUiContext
. -
WindowInfoTracker
reports folding feature data toUiContext
parameters. - Expose the Extensions Version on the device.
Version 1.2.0-beta04
October 18, 2023
androidx.window:window-*:1.2.0-beta04
is released. Version 1.2.0-beta04 contains these commits.
API Changes
- Remove unstable APIs. ( Ibc534 , b/302380585 )
Version 1.2.0-beta03
September 20, 2023
androidx.window:window-*:1.2.0-beta03
is released. Version 1.2.0-beta03 contains these commits.
Новые возможности
- Add
RequiresApi
checks for APIs that need a specific version of extensions to function correctly. - Add an API to expose the extensions version on the device.
API Changes
- Annotate required window SDK extension version on public APIs.
- Remove
isXXXSupported
in the Activity Embedding component. ( Ie3dae )
- Remove
- Introduce
WindowSdkExtensions
to report the extension version on the device.- Introduce
RequiresWindowSdkExtension
to annotate the minimum required extension version. ( I05fd4 )
- Introduce
- Makes
WindowAreaInfo#getCapability
non-nullable. ( I17048 )
Version 1.2.0-beta01
July 26, 2023
androidx.window:window-*:1.2.0-beta01
is released. Version 1.2.0-beta01 contains these commits.
Новые возможности
- Expose experimental window APIs for accessing the rear screen.
- Test APIs for creating a
FoldingFeature
is now stable. - Test APIs for setting up fake
ActivityEmbedding
values are now stable. -
WindowLayoutInfoPublisherRule
now reports the override when obtaining a value from aUiContext
. -
WindowInfoTracker
reports folding feature data toUiContext
parameters.
API Changes
- Marks
WindowArea
API's as experimental to allow API changes to continue for a stable release in 1.3 ( I857f5 ) - Updated API files to annotate compatibility suppression ( I8e87a , b/287516207 )
Version 1.2.0-alpha03
June 21, 2023
androidx.window:window-*:1.2.0-alpha03
is released. Version 1.2.0-alpha03 contains these commits.
Новые возможности
- Removing deprecated APIs from the API surface.
- Add APIs to support concurrent displays.
- Add a property to opt out of forced resize override.
- Add property to opt out of min aspect ratio override.
- Stabilize
ActivityEmbeddingRule
to support unit testing around Activity Embedding.
API Changes
Bug Fixes
- Adding opt-out compat property for force resize override ( Ie7ab1 )
- Removes
SESSION_STATE_CONTENT_INVISIBLE
from extensions interface. ( I6ed19 ) - Stabilize
ActivityEmbeddingRule
to support unit testing around Activity embedding. ( I8d6b6 ) - Adding opt-out compat property for min aspect ratio override. ( I66390 )
- Removes deprecated WindowArea API's ( Ieb67c )
- Rename orientation request loop property to
PROPERTY_COMPAT_ALLOW_IGNORING_ORIENTATION_REQUEST_WHEN_LOOP_DETECTED
. ( Ie2fbd ) - Updates window area session constant names ( I83675 )
- Adding opt-out compat property that ignores orientation request loop when detected ( I0a7a2 )
- Add
WindowAreaComponent#STATUS_ACTIVE
to signify that the feature is already active. ( I62bc3 ) - Add
RearDisplayPresentationMode
APIs ( I0401c ) - Remove background color API for stable. ( I34c3e )
- Hide Window Area APIs. ( I39de0 )
- Add methods to override the
SplitInfo
inSplitController
. Add test methods to create double forSplitInfo
andActivityStack
. ( Icd69f ) - Make tag optional for
ActivityRule.Builder
. ( Ib0b44 ) - Remove
RatioSplitType
,ExpandContainersSplit
andHingeSplitType
. They areSplitType
now.- Replace
#splitEqually()
,#expandContainers()
and#splitByHinge
to constantSplitType SPLIT_TYPE_EQUAL
,SPLIT_TYPE_EXPAND
andSPLIT_TYPE_HINGE
- Remove the functionality to set fallback type of hinge split type. If the hinge split type cannot be applied due to the current device or window state, it fallbacks to split the parent task container equally. Use
SplitController#setSplitAttributesCalculator
to customize the fallback split type. ( Ifcc59 )
- Replace
- Deprecate
add
/removeSplitCallback
- Move
add
/removeSplitCallback
toSplitControllerCallbackAdapter
- Add
Flow
support to getSplitInfo
list ( I7f1b6 )
- Move
- Add a test rule for
ActivityEmbeddingController
( I42e9b ) - Renaming
ActivityOptionsCompat
toActivityEmbeddingOptions
( I89301 ) - Add
splitSupportStatus
to indicate if Activity embedding is available. ( I10024 ) - Introduce
SplitAttributes.BackgroundColor
to better represent theDEFAULT
value. Clarify that non-opaque animation background color is not supported, so any non-opaque colors will be treated as the default, which means to use the current theme window background color. ( Ic6b95 ) - Replace
alwaysAllow()
andalwaysDisallow()
withALWAYS_ALLOW
andALWAYS_DISALLOW
. ( I3057b ) - Add APIs for
SplitRule
,SplitAttributes
,SplitAttributesCalculator
. ( I92d23 ) - Add
TestActivityStack
to createActivityStack
for testing- Add
TestSplitInfo
to createSplitInfo
for testing. ( I8e779 )
- Add
- Add a way to create fake
SplitAttributesCalculatorParams
so that developers can verify their customizedSplitAttributesCalculator
( Id4a6e ) - Add
WindowMetricsCalculator#computeCurrentWindowMetrics(@UiContext context: Context)
andWindowMetricsCalculator#computeMaximumWindowMetrics(@UiContext context: Context)
( I66c7f )
Version 1.2.0-alpha02
June 7, 2023
androidx.window:window-*:1.2.0-alpha02
is released. Version 1.2.0-alpha02 contains these commits.
Новые возможности
- Update test API to have a constant for unspecified folding features.
- Overriding with
WindowLayoutInfoPublishRule
will override all values ofwindowLayoutInfo
, including the Context based API.
API Changes
- Add constant for unspecified center folding feature. ( I7530c )
Bug Fixes
- Update
WindowLayoutInfoPublishRule
to support overrides onContext
basedWindowLayoutInfo
. ( I2037a )
Version 1.2.0-alpha01
May 24, 2023
androidx.window:window-*:1.2.0-alpha01
is released. Version 1.2.0-alpha01 contains these commits.
Новые возможности
Stabilize testing APIs around Activity Embedding and WindowLayoutInfoTracker
. ActivityEmbeddingRule
has been promoted to stable. WindowMetricsCalculatorRule
has been promoted to stable. Utility functions to create a FoldingFeature
for test have been promoted to stable.
API Changes
- Stabilize
ActivityEmbeddingRule
to support unit testing around Activity embedding. ( I8d6b6 ) -
WindowMetrisCalculatorTestRule
is stable allowing stub metrics for JVM tests. We recommend using an emulator for accurate results. - Stabilize test APIs for
WindowLayoutInfo
to support JVM testing. ( Ie036e ) - Add
IntRange
for test folding feature values. ( I69f7d )
Version 1.1
Version 1.1.0
June 7, 2023
androidx.window:window-*:1.1.0
is released. Version 1.1.0 contains these commits.
Important changes since 1.0.0
Activity Embedding
- Added
PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED
as a boolean property of the<application>
tag in the app manifest. - Deprecated
isSplitSupported
and replaced withsplitSupportStatus
to provide more detailed information about why the split feature is not available. - Added the
SplitController.SplitSupportStatus
nested class to provide state constants for thesplitSupportStatus
property. - Refactored
SplitController
to several modules:-
ActivityEmbeddingController
module forActivity
orActivityStack
related APIs. - Moved
isActivityEmbedded
fromSplitController
toActivityEmbeddingController
. -
RuleController
module forEmbeddingRule
related operations: - Removed
SplitController
APIs: -
clearRegisteredRules()
-
getSplitRules()
-
initialize()
-
registerRule()
-
unregisterRule()
- Added
RuleController
APIs: -
addRule()
— Adds a rule or updates the rule that has the same tag. -
removeRule()
— Removes a rule from the collection of registered rules. -
setRules()
— Establishes a collection of rules. -
clearRules()
— Removes all registered rules. -
parseRules()
— Parses rules from XML rule definitions.
-
- All modules require a context to be initialized by
#getInstance()
method, including:-
ActivityEmbeddingController#getInstance(Context)
-
SplitController#getInstance(Context)
-
RuleController#getInstance(Context)
-
- Added the
EmbeddingAspectRatio
class to define enum-like behavior constants related to display aspect ratio. - Added the
SplitAttributes
class to define the split layout. - Added
SplitAttributes
calculator functions toSplitController
to customize split layouts:-
setSplitAttributesCalculator(Function)
-
clearSplitAttributesCalculator()
-
isSplitAttributesCalculatorSupported()
to check if theSplitAttributesCalculator
APIs are supported on the device
-
- Added
EmbeddingRule#tag
field. - API updates in
SplitRule
:- Added
defaultSplitAttributes
— Defines the default split layout of a split; replacessplitRatio
andlayoutDirection
. - Added translation of the XML properties
splitRatio
andsplitLayoutDirection
todefaultSplitAttributes
. - Changed minimum dimension definitions to use density-independent pixels (dp) instead of pixels.
- Added
minHeightDp
with default value 600dp. - Changed
minWidth
tominWidthDp
with default value 600dp. - Changed
minSmallestWidth
tominSmallestWidthDp
with default value 600dp. - Added
maxAspectRatioInHorizontal
with default valueALWAYS_ALLOW
. - Added
maxAspectRatioInPortrait
with default value 1.4. - Defined
FinishBehavior
nested class to replace finish behavior constants. - Applied the property changes to the Builder nested class of
SplitPairRule
andSplitPlaceholderRule
.
- Added
- Replaced
SplitInfo#getSplitRatio()
withSplitInfo#getSplitAttributes()
to provide additional split-related information.
WindowLayout
- Added experimental non-activity UI context support to
WindowInfoTracker
. - Added experimental non-activity UI context to
WindowMetricsCalculator
.
Migration Steps
- To enable activity embedding to display activities in splits, apps must add the
PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED
property to the manifest<application>
tag:xml <property android:name="android.window.PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED" android:value="true" />
This allows the system to optimize the split behaviors for an application ahead of time. -
SplitInfo
ratio- Check if the current split is stacked:
kotlin SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.ExpandContainersSplitType
- Check the current ratio:
kotlin if (SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.RatioSplitType) { val ratio = splitInfo.splitAttributes.splitType.ratio } else { // Ratio is meaningless for other types. }
- Check if the current split is stacked:
- SplitController migrations:
-
SplitController.getInstance()
changes toSplitController.getInstance(Context)
. -
SplitController.initialize(Context, @ResId int)
changes toRuleController.getInstance(Context).setRules(RuleController.parse(Context, @ResId int))
. -
SplitController.getInstance().isActivityEmbedded(Activity)
changes toActivityEmbeddingController.getInstance(Context).isActivityEmbedded(Activity)
. -
SplitController.getInstance().registerRule(rule)
changes toRuleController.getInstance(Context).addRule(rule)
. -
SplitController.getInstance().unregisterRule(rule)
changes toRuleController.getInstance(Context).removeRule(rule)
. -
SplitController.getInstance().clearRegisteredRules()
changes toRuleController.getInstance(Context).clearRules()
. -
SplitController.getInstance().getSplitRules()
changes toRuleController.getInstance(Context).getRules()
.
-
-
SplitRule
property migrations:-
minWidth
andminSmallestWidth
now use dp units instead of pixels. Apps can use the following call:kotlin TypedValue.applyDimension( COMPLEX_UNIT_DIP, minWidthInPixels, resources.displayMetrics )
or simply divideminWith
in pixels bydisplayMetrics#density
.
-
- Finish behavior constants must be migrated to
FinishBehavior
enum-like class constants:-
FINISH_NEVER
changes toFinishBehavior.NEVER
. -
FINISH_ALWAYS
changes toFinishBehavior.ALWAYS
. -
FINISH_ADJACENT
changes toFinishBehavior.ADJACENT
.
-
- Layout direction must be migrated to
SplitAttributes.LayoutDirection
:-
ltr
changes toSplitAttributes.LayoutDirection.LEFT_TO_RIGHT
. -
rtl
changes toSplitAttributes.LayoutDirection.RIGHT_TO_LEFT
. -
locale
changes toSplitAttributes.LayoutDirection.LOCALE
. -
splitRatio
must be migrated toSplitAttributes.SplitType.ratio(splitRatio)
.
-
-
SplitPairRule.Builder
migrations:-
SplitPairRule.Builder(filters, minWidth, minSmallestWidth)
changes tokotlin SplitPairRule.Builder(filters) .setMinWidthDp(minWidthInDp) // Optional if minWidthInDp is 600. .setMinSmallestWidthDp(minSmallestWidthDp) // Optional if minSmallestWidthInDp is 600.
-
setLayoutDirection(layoutDirection)
andsetSplitRatio(ratio)
changes tokotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
-
setFinishPrimaryWithSecondary
andsetFinishSecondaryWithPrimary
take theFinishBehavior
enum-like constants. See “SplitRule migrations” for details. - Use
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)
to show splits on portrait devices.
-
-
SplitPlaceholder.Builder
migrations:- Has only
filters
andplaceholderIntent
parameters. Other properties move to setters. See “SplitPairRule.Builder migrations” for details. -
setFinishPrimaryWithPlaceholder
takes theFinishBehavior
enum-like constants. See “SplitRule migrations” for details. -
setLayoutDirection(layoutDirection)
andsetSplitRatio(ratio)
change to:kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
- Use
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)
to show splits on portrait devices.
- Has only
Version 1.1.0-rc01
May 10, 2023
androidx.window:window-*:1.1.0-rc01
is released. Version 1.1.0-rc01 contains these commits.
Новые возможности
- Release
ActivityEmbedding
as a stable API. - Various bug fixes.
Version 1.1.0-beta02
April 5, 2023
androidx.window:window-*:1.1.0-beta02
is released. Version 1.1.0-beta02 contains these commits.
Новые возможности
- Internal fixes and clean up.
Version 1.1.0-beta01
March 22, 2023
androidx.window:window-*:1.1.0-beta01
is released. Version 1.1.0-beta01 contains these commits.
Activity Embedding
- Added
PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED
as a boolean property of the<application>
tag in the app manifest. - Deprecated
isSplitSupported
and replaced withsplitSupportStatus
to provide more detailed information about why the split feature is not available. - Added the
SplitController.SplitSupportStatus
nested class to provide state constants for thesplitSupportStatus
property. - Refactored
SplitController
to several modules:-
ActivityEmbeddingController
module forActivity
orActivityStack
related APIs. - Moved
isActivityEmbedded
fromSplitController
toActivityEmbeddingController
. -
RuleController
module forEmbeddingRule
related operations: - Removed
SplitController
APIs:-
clearRegisteredRules()
-
getSplitRules()
-
initialize()
-
registerRule()
-
unregisterRule()
-
- Added
RuleController
APIs:-
addRule()
— Adds a rule or updates the rule that has the same tag. -
removeRule()
— Removes a rule from the collection of registered rules. -
setRules()
— Establishes a collection of rules. -
clearRules()
— Removes all registered rules. - `parseRules() — Parses rules from XML rule definitions.
-
-
- All modules require a context to be initialized by
#getInstance()
method, including:-
ActivityEmbeddingController#getInstance(Context)
-
SplitController#getInstance(Context)
-
RuleController#getInstance(Context)
-
- Added the
EmbeddingAspectRatio
class to define enum-like behavior constants related to display aspect ratio. - Added the
SplitAttributes
class to define the split layout. - Added
SplitAttributes
calculator functions toSplitController
to customize split layouts:-
setSplitAttributesCalculator(Function)
-
clearSplitAttributesCalculator()
-
isSplitAttributesCalculatorSupported()
to check if the SplitAttributesCalculator APIs are supported on the device
-
- Added
EmbeddingRule#tag
field. - API updates in
SplitRule
:- Added
defaultSplitAttributes
— Defines the default split layout of a split; replacessplitRatio
andlayoutDirection
. - Added translation of the XML properties
splitRatio
andsplitLayoutDirection
todefaultSplitAttributes
. - Changed minimum dimension definitions to use density-independent pixels (dp) instead of pixels.
- Added
minHeightDp
with default value 600dp. - Changed
minWidth
tominWidthDp
with default value 600dp. - Changed
minSmallestWidth
tominSmallestWidthDp
with default value 600dp. - Added
maxAspectRatioInHorizontal
with default valueALWAYS_ALLOW
. - Added
maxAspectRatioInPortrait
with default value1.4
. - Defined
FinishBehavior
nested class to replace finish behavior constants. - Applied the property changes to the
Builder
nested class ofSplitPairRule
andSplitPlaceholderRule
.
- Added
- Replaced
SplitInfo#getSplitRatio()
withSplitInfo#getSplitAttributes()
to provide additional split-related information.
WindowLayout
- Added non-activity UI context support to
WindowInfoTracker
. - Added non-activity UI context to
WindowMetricsCalculator
.
Migration Steps
- To enable activity embedding to display activities in splits, apps must add the
PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED
property to the manifest<application>
tag:xml <property android:name="android.window.PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED" android:value="true" />
This allows the system to optimize the split behaviors for an application ahead of time. -
SplitInfo
ratio- Check if the current split is stacked:
kotlin SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.ExpandContainersSplitType
- Check the current ratio:
kotlin if (SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.RatioSplitType) { val ratio = splitInfo.splitAttributes.splitType.ratio } else { // Ratio is meaningless for other types. }
- Check if the current split is stacked:
-
SplitController
migrations:-
SplitController.getInstance()
changes toSplitController.getInstance(Context)
. -
SplitController.initialize(Context, @ResId int)
changes toRuleController.getInstance(Context).setRules(RuleController.parse(Context, @ResId int))
. -
SplitController.getInstance().isActivityEmbedded(Activity)
changes toActivityEmbeddingController.getInstance(Context).isActivityEmbedded(Activity)
. -
SplitController.getInstance().registerRule(rule)
changes toRuleController.getInstance(Context).addRule(rule)
. -
SplitController.getInstance().unregisterRule(rule)
changes toRuleController.getInstance(Context).removeRule(rule)
. -
SplitController.getInstance().clearRegisteredRules()
changes toRuleController.getInstance(Context).clearRules()
. -
SplitController.getInstance().getSplitRules()
changes toRuleController.getInstance(Context).getRules()
.
-
-
SplitRule
property migrations:-
minWidth
andminSmallestWidth
now use dp units instead of pixels. Apps can use the following call:kotlin TypedValue.applyDimension( COMPLEX_UNIT_DIP, minWidthInPixels, resources.displayMetrics )
or simply divideminWith
in pixels bydisplayMetrics#density
.
-
- Finish behavior constants must be migrated to
FinishBehavior
enum-like class constants:-
FINISH_NEVER
changes toFinishBehavior.NEVER
. -
FINISH_ALWAYS
changes toFinishBehavior.ALWAYS
. -
FINISH_ADJACENT
changes toFinishBehavior.ADJACENT
.
-
- Layout direction must be migrated to
SplitAttributes.LayoutDirection
:-
ltr
changes toSplitAttributes.LayoutDirection.LEFT_TO_RIGHT
. -
rtl
changes toSplitAttributes.LayoutDirection.RIGHT_TO_LEFT
. -
locale
changes toSplitAttributes.LayoutDirection.LOCALE
. -
splitRatio
must be migrated toSplitAttributes.SplitType.ratio(splitRatio)
.
-
-
SplitPairRule.Builder
migrations:-
SplitPairRule.Builder(filters, minWidth, minSmallestWidth)
changes tokotlin SplitPairRule.Builder(filters) .setMinWidthDp(minWidthInDp) // Optional if minWidthInDp is 600. .setMinSmallestWidthDp(minSmallestWidthDp) // Optional if minSmallestWidthInDp is 600.
-
setLayoutDirection(layoutDirection)
andsetSplitRatio(ratio)
change tokotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
-
setFinishPrimaryWithSecondary
andsetFinishSecondaryWithPrimary
take theFinishBehavior
enum-like constants. See “SplitRule migrations” for details. - Use
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)
to show splits on portrait devices.
-
-
SplitPlaceholder.Builder
migrations:- Has only
filters
andplaceholderIntent
parameters. Other properties move to setters. See “SplitPairRule.Builder migrations” for details. -
setFinishPrimaryWithPlaceholder
takes theFinishBehavior
enum-like constants. See “SplitRule migrations” for details. -
setLayoutDirection(layoutDirection)
andsetSplitRatio(ratio)
change to:kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
- Use
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)
to show splits on portrait devices.
- Has only
Version 1.1.0-alpha06
February 22, 2023
androidx.window:window-*:1.1.0-alpha06
is released. Version 1.1.0-alpha06 contains these commits.
Новые возможности
- Expose experimental version of getting the
WindowLayoutInfo
from a UI context.
API Changes
- Add
splitSupportStatus
to indicate if Activity embedding is available. ( I10024 ) - Make UI Context
WindowLayoutInfo
API as experimental. ( I58ee0 ) - Introduces the
WindowAreaController
and API's to enableRearDisplay
Mode to move the current window to the display that is aligned with the rear camera. ( Iffcbf ) - Update default background color. ( I1ac1b )
- Add
SplitAttributes
params. ( I18bdd ) - Add APIs for
SplitRule
,SplitAttributes
,SplitAttributesCalculator
. ( I92d23 ) - Improve the APIs around
maxAspectRatio
:- Replace
alwaysAllow()
andalwaysDisallow()
withALWAYS_ALLOW
andALWAYS_DISALLOW
. - Update API documentation of @see with standalone documentation. ( I3057b )
- Replace
- The following constructors are removed from public APIs because they are not supposed to be called by apps.
-
SplitInfo
constructor -
ActivityStack
constructor ( Ide534 )
-
-
SplitRule
now takesmaxAspectRatioInPortrait/Landscape
. It only allows activities split when the aspect ratio of the parent bounds is smaller or equal to the requestedmaxAspectRatio
. ( Ia5990 ) - Change
RuleController#parseRules
to be static ( I785df ) - Improve the APIs around ActivityEmbedding
- Align the API naming - Use add/remove for multiple instances:
-
registerRule
changes toaddRule
-
unregisterRule
changes toremoveRule
- Replace
getSplitRules
withgetRules
sinceActivityRule
is not a split rule - Add
RuleController#setRules
to set a bunch of rules - Extract rule related APIs from
SplitController
to singletonRuleController
. Они есть: -
addRule
-
removeRule
-
getRules
-
setRules
-
clearRules
-
parseRules
- Extract
#isActivityEmbedded
fromSplitController
to singletonActivityEmbeddingController
. Они есть: -
isActivityEmbedded
- Remove
SplitController#initialize
. To set rules from XML file, please useRuleController#parseRules
and#setRules
. Before this change:SplitController.initialize(context, R.xml.static_rules)
After this change:val ruleController = RuleController.getInstance(context) val rules = ruleController.parseRules(R.xml.static_rules) ruleController.setRules(rules)
- We don't distinguish static rules with runtime rules anymore. That said, calling
#clearRules
results to clear all rules no matter they are registered with static XML rule definitions or at runtime. To hav the legacy behavior ofSplitController#clearRegisteredRules
, please callRuleController#parseRules
with the XML resources id and callRuleController#setRules
to set back the rules again. Before this change:SplitController.getInstance(context).clearRegisteredRules()
After this change:val ruleController = RuleController.getInstance(context) val rules = ruleController.parseRules(R.xml.static_rules) ruleController.setRules(rules)
( Ib3967 )
- Improve the SplitRule APIs:
- Take min dimensions in DP instead of pixels for
SplitRule
. - Refactor for
SplitRule
Builder to take min dimensions as optional. ( I95f17 )
- Take min dimensions in DP instead of pixels for
- Pass a Context to initialize
SplitController
( I42549 ) - Renamed
SplitRule#layoutDir
to#layoutDirection
andSplitRule Builder#setLayoutDir
toBuilder#setLayoutDirection
. ( I3f6d1 )
Version 1.1.0-alpha04
November 9, 2022
androidx.window:window-*:1.1.0-alpha04
is released. Version 1.1.0-alpha04 contains these commits.
Новые возможности
- Expose a method to determine if an
ActivityStack
is empty forActivityEmbedding
. - Removed experimental API tags from
ActivityEmbedding
APIs. - Hide
ActivityRule
constructor as theBuilder
is the preferred way to construct. - Add an experimental method to get the
WindowInsets
onWindowMetrics
. - Update
SplitPlaceholderFinishBehavior
to prevent finishing the placeholder. Finishing the placeholder caused some confusing behavior.
API Changes
- Make val
isEmpty
public to replace funisEmpty
. - Rename
ActivityStack
parameter activities toactivitiesInProcess
. ( Ia5055 ) - Remove
ActivityFilter#matchesClassName
andActivityFilter#matchesClassNameOrWildCard
because they are confusing. - Add
ActivityFilter#componentName
abdActivityFilter#intentAction
to allow the caller to distinguish different filters ( I41f22 ) - Remove the
@Deprecated
APIs from the experimental API ( I216b3 ) - Remove
@ExperimentalWindowApi
for Activity Embedding APIs ( I69ebe ) - Hide
ActivityRule
constructor, use Builder instead. ( If4eb6 ) - Add APIs to check if an Activity is part of the
ActivityFilter
. ( Ia43cf ) - Update API files to reflect changes in
WindowMetrics
andWindowMetricsCalculatorCompat
classes ( I667fe ) - Update
ActivityEmbedding
Property Javadoc and class name ( Ia1386 ) - Adding
ActivityEmbedding
property tag names to be used in AndroidManifest.xml ( Id1ad4 ) - Added new API
SplitPlaceholderFinishBehavior
andSplitPlaceholderRule.finishPrimaryWithPlaceholder
, this replaces existingSplitPlaceholderRule.finishPrimaryWithSecondary
which defines when placeholder activites are finished, how associated activites in Activity Embedding should behave. ( I64647 )
Bug Fixes
- Introduces the
WindowAreaController
and API's to enableRearDisplay
Mode to move the current window to the display that is aligned with the rear camera. ( I388ab )
Version 1.1.0-alpha03
July 27, 2022
androidx.window:window-*:1.1.0-alpha03
is released. Version 1.1.0-alpha03 contains these commits.
Новые возможности
- Update the default values for embedding rules.
API Changes
- Update default values for embedding rule properties. ( Ic4d35 )
Version 1.1.0-alpha02
May 11, 2022
androidx.window:window-*:1.1.0-alpha02
is released. Version 1.1.0-alpha02 contains these commits.
Новые возможности
- Release the adapter libraries to support Java and RxJava.
Version 1.1.0-alpha01
May 11, 2022
androidx.window:window-*:1.1.0-alpha01
is released. Version 1.1.0-alpha01 contains these commits.
Новые возможности
- Release adapters to support java and RxJava
Version 1.1.0-alpha01
April 20, 2022
androidx.window:window:1.1.0-alpha01
is released. Version 1.1.0-alpha01 contains these commits.
Новые возможности
- Fixes a bug where backgrounding an app stops emitting fold features.
- Expand on the experimental ActivityEmbedding API.
API Changes
- A public API to check if an activity is being embedded. ( I39eb7 )
Bug Fixes
- Add APIs that customize finishing behavior for containers in activity splits ( I1a1e4 )
- Added a new configuration option for activity split rules. ( Iec6af )
Version 1.0
Версия 1.0.0
January 26, 2022
androidx.window:window-*:1.0.0
is released. Version 1.0.0 contains these commits.
Major features of 1.0.0
- Support for folding phones through
WindowInfoTracker
andFoldingFeature
.WindowMetricsCalculator
to help calculate the current WindowMetrics.
Version 1.0.0-rc01
15 декабря 2021 г.
androidx.window:window-*:1.0.0-rc01
is released. Version 1.0.0-rc01 contains these commits.
Новые возможности
- Add support for folding phones through
WindowInfoTracker
. - Add methods to calculate the current and maximum
WindowMetrics
. - Add supporting test APIs.
Version 1.0.0-beta04
November 17, 2021
androidx.window:window-*:1.0.0-beta04
is released. Version 1.0.0-beta04 contains these commits.
Новые возможности
- Rename WindowInfoRepository to WindowInfoTracker.
- Make Activity an explicit method dependency for WindowInfoTracker.
- Add a simple TestRule for WindowMetricsCalculator to support developers using Robolectric.
API Changes
- Extract extensions ( I25a5f )
- add isEmpty in ActivityStack ( I5a4e6 )
- Rename WindowInfoRepository to WindowInfoTracker.
- Update java/rxjava/testing dependencies to match. ( I0da63 )
- Add a test rule for a simple WindowMetricsCalculator. ( Ibacdb )
Version 1.0.0-beta03
October 27, 2021
androidx.window:window-*:1.0.0-beta03
is released. Version 1.0.0-beta03 contains these commits.
Новые возможности
- Add experimental Activity Embedding APIs. This initial layout version allows showing two Activities side by side.
API Changes
- Removed the currentWindowMetrics API since we can not provide it accurately. Please use WindowMetricsCalculator instead ( Icda5f )
- Updated the extensions api. ( Ica92b )
- Added an interface for a new feature that allows embedding activities and showing them side-by-side within the parent task window. ( I5711d )
- Hid the constructors for WindowMetrics and WindowLayoutInfo, please use the test APIs instead. ( I5a1b5 )
- Add an API to create fake WindowLayoutInfo objects. ( I4a2fd )
Bug Fixes
- Fixed memory leak. ( I3fc79 , b/202989046 )
Version 1.0.0-beta02
September 1, 2021
androidx.window:window-*:1.0.0-beta02
is released. Version 1.0.0-beta02 contains these commits.
Новые возможности
- Add an experimental annotation to annotate experimental APIs. ( I9f1b6 )
- Add a test method to create a test FoldingFeature that accepts a Rect. This will make it easie to test when using Robolectric as opposed to an actual Activity. ( Id1cca )
Version 1.0.0-beta01
August 18, 2021
androidx.window:window-*:1.0.0-beta01
is released. Version 1.0.0-beta01 contains these commits.
Новые возможности
- Removed old constants and made
FoldingFeature
into an interface.
API Changes
- Remove old constants and make FoldFeature an interface. ( I9a2d5 )
Bug Fixes
- Libraries that depend on the
Test Core
library have been upgraded to version1.4.0
and will now work with Android platform version S. ( I88b72 , b/189353863 )
Version 1.0.0-alpha10
August 4, 2021
androidx.window:window-*:1.0.0-alpha10
is released. Version 1.0.0-alpha10 contains these commits.
Новые возможности
- Rename WindowInfoRepo to WindowInfoRepository and adjust corresponding classes / files.
- Convert current window metrics to a Flow in WindowInfoRepository since the value changes over time.
- Rename WindowInfoRepoJavaAdapter to WindowInfoRepoCallbackAdapter
- Add helper method to create test FoldingFeature objects
- Update packages to group classes based on the feature they are supporting.
API Changes
- Rename ActivityExt to ActivityExtensions Change from Repo to Repository. ( I61a16 )
- Update packages for classes. ( I23ae2 )
- Remove WindowMetrics from WindowInfoRepo ( I24663 )
- Remove WindowManager and use WindowInfoRepo
- Make WindowBackend internal. ( I06d9a )
- Convert window metrics to Flow.
- Rename java adapter to WindowInfoRepoCallbackAdapter
- Remove callbackFlow so no more experimental APIs are in use. ( Ia4d15 )
- Add helper method to create test display features.
- Change from occlusionMode to occlusionType ( If4cff )
Bug Fixes
- Fix proguard error where core library was being removed.
- Fix error where WindowLayoutInfo was not being delivered to additional subscribers.
- Fix error where config changes would not trigger folding feature updates.
Version 1.0.0-alpha09
June 30, 2021
androidx.window:window-*:1.0.0-alpha09
is released. Version 1.0.0-alpha09 contains these commits.
Новые возможности
- Change from integer constants to unbounded enums.
- Add a test util to create test folding features.
API Changes
- Add helper method to create test display features. ( I3cf54 )
- Change from
occlusionMode
toocclusionType
.
- Change from
Bug Fixes
- Emit initial value when adding multiple consumers of the data streams.
Version 1.0.0-alpha08
June 16, 2021
androidx.window:window-*:1.0.0-alpha08
is released. Version 1.0.0-alpha08 contains these commits.
Новые возможности
- Released a testing artifact to make it easier to test when using WindowInfoRepository. Use WindowInfoRepository to get information about DisplayFeatures and the WindowMetrics. ( I57f66 , Ida620 )
Version 1.0.0-alpha07
June 2, 2021
androidx.window:window-*:1.0.0-alpha07
is released. Version 1.0.0-alpha07 contains these commits.
Новые возможности
- Migrate core window library to Kotlin. Will use coroutines and suspend functions to expose asynchronous data going forward.
- Add WindowInfoRepo as the main interaction point for getting the WindowMetrics and the stream of WindowLayoutInfo.
- New
window-java
artifact to expose Java-friendly APIs to register and unregister callbacks. - New
window-rxjava2
andwindow-rxjava3
artifacts to expose RxJava adapted APIs.
API Changes
- Add
WindowServices
to provide dependencies uniformly.- Add coroutine based api to consume window layout info. ( Iab70f )
- Migrate core window manager library to Kotlin. ( Icca34 )
Bug Fixes
- Add new data class to represent feature bounds. ( I6dcd1 )
Version 1.0.0-alpha06
May 5, 2021
androidx.window:window:1.0.0-alpha06
is released. Version 1.0.0-alpha06 contains these commits.
Новые возможности
- We have started our migration to Kotlin and will finish in the next release.
- DeviceState has been removed from the public API, please use FoldingFeature instead.
- We have removed
STATE_FLIPPED
from the FoldingFeature states since it is not supported by any use-case at the moment. - We have also removed other deprecated APIs.
API Changes
- Adding Kotlin as a dependency.
- Migrate core library to Kotlin. ( Idd995 )
- Removed
DisplayFeature
builder. ( I61fa4 ) - Removed
DeviceState
from public api, useFoldingFeature
instead. ( Id6079 ) - Remove device state callback from extensions. ( I5ea83 )
- Remove
STATE_FLIPPED
from FoldingFeature. ( I9c4e1 ) - Remove deprecated registration methods. ( Ib381b )
Version 1.0.0-alpha05
March 24, 2021
androidx.window:window:1.0.0-alpha05
is released. Version 1.0.0-alpha05 contains these commits.
Новые возможности
We have added convenience methods to FoldingFeature so that apps can tell if the feature is separating, occluding, and determine the orientation of the hinge. We are also hiding the hinge type so that
We are removing the synchronous read methods from WindowManager. Synchronous read methods are error prone since there is an implicit race condition. Register listeners and callbacks to receive updates on the WindowLayoutInfo.
API Changes
- Add convenience methods for working with FoldingFeatures ( Ie733f )
- Removes synchronous read methods from WindowManager ( I96fd4 )
Version 1.0.0-alpha04
March 10, 2021
androidx.window:window:1.0.0-alpha04
is released. Version 1.0.0-alpha04 contains these commits.
Новые возможности
- Fixes a bug where no WindowLayoutInfo is emitted if there isn't an OEM implementation. Now we emit an empty WIndowLayoutInfo.
- Fix a bug where state would not update properly if the hinge state changed while the app was backgrounded. Now the state should be consistent.
- Update our proguard files to ignore warnings from runtime dependencies.
Bug Fixes
- Emit an empty value when the OEM library is missing. ( Ide935 )
Version 1.0.0-alpha03
February 18, 2021
androidx.window:window:1.0.0-alpha03
is released. Version 1.0.0-alpha03 contains these commits.
Новые возможности
- Emit an empty value for WindowLayoutInfo when the OEM implementation is empty. This should make it easier to use the library on more devices. Since the APIs are asynchronous it is still recommended that apps write some defensive code and emit a default value after a timeout. We do not have any guarantees on OEM implementations and the initial value may be delayed.
Bug Fixes
- Emit an empty value when the OEM library is missing. ( Ide935 )
Version 1.0.0-alpha02
January 27, 2021
androidx.window:window:1.0.0-alpha02
is released. Version 1.0.0-alpha02 contains these commits.
Новые возможности
We have deprecated some APIs to help streamline the api and reduce mistakes. Some notable examples are removing the synchronous read operations from WindowManager and deprecating DeviceState. Synchronous read operations can lead to race conditions and have incorrect UI.
We have converted DisplayFeature to an interface that other features will implement going forward. Our first feature is FoldingFeature which is now the representation of a screen fold or a hinge. This also contains the state of the hinge replacing DeviceState.
WindowMetrics was introduced in Android 11 to provide developers with a simple way to query for metrics about a window, for example its position and size on screen and any system insets. We've backported the API in this release so that developers can leverage WindowMetrics and continue to support older Android versions. WindowMetrics can be obtained through the
WindowManager#getCurrentWindowMetrics()
and WindowManager#getMaximumWindowMetrics() APIs.
API Changes
- Deprecate APIs that will be removed in the next alpha ( Ib7cc4 )
- Updates
ExtensionInterface
to accept explicit Activity references. ( I07ded ) - Introduces the WindowMetrics API. ( I3ccee )
- Remove synchronous read methods from WindowManager ( I69983 )
- Make ExtensionWindowBackend package protected. ( Ied208 )
Bug Fixes
- Update
ExtensionInterface
APIs to accept visual contexts. ( I8e827 )
External Contribution
- Merge DeviceState and WindowLayoutInfo so it is easier to access data. ( Id34f4 )
Version 1.0.0-alpha01
February 27, 2020
androidx.window:window:1.0.0-alpha01
and androidx.window:window-extensions:1.0.0-alpha01
are released. Version 1.0.0-alpha01 contains these commits. This is the first release of the Window Manager library.
New features
-
DisplayFeature
: This new API identifies disruptions in the continuous flat screen surfaces such as hinges or folds -
DeviceState
: This new API provides the current posture of the phone from a list of defined postures (For example,CLOSED
,OPENED
,HALF_OPENED
, etc.)