конфиденциальностьпесочница пользовательский интерфейс
Последнее обновление | Стабильный релиз | Кандидат на релиз | Бета-релиз | Альфа-релиз |
---|---|---|---|---|
20 мая 2025 г. | - | - | - | 1.0.0-альфа16 |
Объявление зависимостей
Чтобы добавить зависимость от privacysandbox-ui, необходимо добавить репозиторий Google Maven в свой проект. Прочтите репозиторий Google Maven для получения дополнительной информации.
Добавьте зависимости для необходимых артефактов в файл build.gradle
для вашего приложения или модуля:
классный
dependencies { // Use to implement privacysandbox ui-client implementation "androidx.privacysandbox.ui:ui-client:1.0.0-alpha16" // Use to implement privacysandbox ui-core implementation "androidx.privacysandbox.ui:ui-core:1.0.0-alpha16" // Use to implement privacysandbox ui-core implementation "androidx.privacysandbox.ui:ui-provider:1.0.0-alpha16" }
Котлин
dependencies { // Use to implement privacysandbox ui-client implementation("androidx.privacysandbox.ui:ui-client:1.0.0-alpha16") // Use to implement privacysandbox ui-core implementation("androidx.privacysandbox.ui:ui-core:1.0.0-alpha16") // Use to implement privacysandbox ui-provider implementation("androidx.privacysandbox.ui:ui-provider:1.0.0-alpha16") }
Дополнительную информацию о зависимостях см. в разделе Добавление зависимостей сборки .
Обратная связь
Ваши отзывы помогают сделать Jetpack лучше. Сообщите нам, если вы обнаружите новые проблемы или у вас есть идеи по улучшению этой библиотеки. Пожалуйста, ознакомьтесь с существующими проблемами в этой библиотеке, прежде чем создавать новую. Вы можете добавить свой голос к существующей проблеме, нажав кнопку со звездочкой.
Более подробную информацию смотрите в документации Issue Tracker .
Версия 1.0
Версия 1.0.0-альфа16
20 мая 2025 г.
Выпущен androidx.privacysandbox.ui:ui-*:1.0.0-alpha16
. Версия 1.0.0-alpha16 содержит эти коммиты .
Новые возможности
- Добавлена логика для измерения препятствий в
SandboxedSdkView
, которая будет отправлена вSessionObserver.onUiContainerChanged()
еслиSandboxedUiAdapterSignalOptions.OBSTRUCTIONS
включен в связанныйSessionObserverFactory.signalOptions
. Препятствия сообщаются относительно самого представления.
Изменения API
-
SandboxedSdkUi
перемещен из ui-client в новую библиотеку ui-client-compose. - Добавлена логика для измерения препятствий в контейнерах пользовательского интерфейса. ( I34bea )
Исправление ошибок
- Исправлен
SandboxedSdkView.setAlpha()
, который теперь обновляет альфа-канал своего представления содержимого.
Версия 1.0.0-альфа15
26 марта 2025 г.
Выпущены androidx.privacysandbox.ui:ui-client:1.0.0-alpha15
, androidx.privacysandbox.ui:ui-core:1.0.0-alpha15
и androidx.privacysandbox.ui:ui-provider:1.0.0-alpha15
. Версия 1.0.0-alpha15 содержит эти коммиты .
Новые возможности
- Установите Z-порядок по умолчанию
SandboxedSdkView
иSandboxedSdkUi
на «ниже», указывая, что поверхность поставщика теперь размещена под окном клиента. Добавлена поддержка для поставщика пользовательского интерфейса для полученияMotionEvents
в этом режиме после получения клиентским окном. - Добавлено поле
signalOptions
в интерфейсSessionObserverFactory
. Его можно использовать для определения набора параметров String, которые будут использоваться для определения того, какие сигналы собираются для связанногоSessionObserver
. Первоначальный набор сигналов определен вSandboxedUiAdapterSignalOptions
. Если параметры сигнала не заданы, будут вызваны толькоSessionObserver.onSessionOpened()
иSessionObserver.onSessionClosed()
.
Изменения API
-
SessionConstants
переименованы вSessionData
вSandboxedUiAdapter.openSession()
.
Известные проблемы
- Когда SDK загружен в среду выполнения SDK и Z-порядок
SandboxedSdkView
илиSandboxedSdkUi
находится «выше», жест принимается исключительно окном поставщика и больше не передается в клиентское окно.
Версия 1.0.0-альфа14
26 февраля 2025 г.
Выпущены androidx.privacysandbox.ui:ui-client:1.0.0-alpha14
, androidx.privacysandbox.ui:ui-core:1.0.0-alpha14
и androidx.privacysandbox.ui:ui-provider:1.0.0-alpha14
. Версия 1.0.0-alpha14 содержит эти коммиты .
Новые возможности
- Теперь вы можете создавать «общий UI», т. е. UI, который может иметь элементы, принадлежащие как клиенту, так и провайдеру. Общий UI может размещаться с помощью
SharedUiContainer
, который расширяетViewGroup
. Новые API используют концепцию управления сеансами, похожую наSandboxedSdkView
иSandboxedUiAdapter
. - Все API, добавленные в этом выпуске, защищены флагом
SharedUiPresentationApi
@RequiresOptIn
.
Изменения API
- Добавлены API управления сеансами и регистрации активов в
SharedUiContainer
. Управление сеансами реализовано с помощьюSharedUiAdapter
, представленного в том же выпуске. ( Ic60b0 ) - Добавлен
SharedUiContainer
, который может размещать пользовательский интерфейс, принадлежащий клиенту и провайдеру. Он размещает все свои дочерние представления в верхнем левом углу. ( Ia7310 ) - Добавлена поддержка обратной совместимости для
SharedUiAdapter
. ( I56d7a ) - Добавлен
SharedUiAdapter
для управления сеансами View-контейнеров, которые могут размещать пользовательский интерфейс, принадлежащий клиенту и поставщику. Логика управления сеансами аналогичнаSandboxedUiAdapter
. ( I501f6 )
Исправление ошибок
- Вычислите видимость при вызове
onVisibilityAggregated
. ( I91c69 )
Известные проблемы
- При помещении в
PoolingContainer
SharedUiContainer
закрывает сеанс при отсоединении окна.
Версия 1.0.0-альфа13
29 января 2025 г.
Выпущены androidx.privacysandbox.ui:ui-client:1.0.0-alpha13
, androidx.privacysandbox.ui:ui-core:1.0.0-alpha13
и androidx.privacysandbox.ui:ui-provider:1.0.0-alpha13
. Версия 1.0.0-alpha13 содержит эти коммиты .
Новые возможности
- Добавлен объект Composable, называемый
SandboxedSdkUi
, который можно использовать для отображения удаленного контента в Compose UI. Этот объект использует существующие концепцииSandboxedSdkView
для управления сеансами и прослушивателей событий. ( I009cf ) - Изменена сигнатура
SandboxedUiAdapter.openSession
для включения нового параметраSessionConstants
, который заменяет предыдущийwindowInputToken
. Этот параметр должен использоваться для передачи значений, которые будут постоянными в течение всего срока службыSandboxedUiAdapter.Session
. ( Ibc0df , I28435 )
Известные проблемы
- События
SessionObserver
не отправляются дляSandboxedSdkUi
при прокрутке. -
SandboxedSdkUi
не отсекается родительскими представлениями, когда он находится в режиме Z-выше.
Изменения API
- Удалить устаревший код
SDKActivityLauncher
( I49a4f ) - Отделенная логика регистрации фабрики наблюдателей от
SandboxedUiAdapter
путем добавления нового интерфейсаSessionObserverFactoryRegistry
. ( I245cc )
Версия 1.0.0-альфа12
11 декабря 2024 г.
Выпущены androidx.privacysandbox.ui:ui-client:1.0.0-alpha12
, androidx.privacysandbox.ui:ui-core:1.0.0-alpha12
и androidx.privacysandbox.ui:ui-provider:1.0.0-alpha12
. Версия 1.0.0-alpha12 содержит эти коммиты .
Новые возможности
-
StateChangedListener
заменен наSandboxedSdkViewEventListener
. Этот прослушиватель событий можно использовать для прослушивания событий отображения пользовательского интерфейса, закрытия сеанса и ошибок сеанса.
Изменения API
- Добавляет
SandboxedSdkViewEventListener
для прослушивания событий пользовательского интерфейса внутриSandboxedSdkView
. Эта версия также удаляетStateChangedListener
. ( Id71ea )
Исправление ошибок
- Удалена логика отсечения границ из
SandboxedSdkView
. Это приведет к проблемам UX, еслиSandboxedSdkView
помещен в прокручиваемый контейнер иorderProviderUiAboveClientUi(false)
не был вызван (пока не будет исправлена ошибка базовой структуры). ( Id420d ) - Исправлена ошибка
RemoteException
, которая могла возникнуть, если удаленный процесс завершается при использованииDelegatingSandboxedUiAdapter
.
Версия 1.0.0-альфа11
13 ноября 2024 г.
Выпущены androidx.privacysandbox.ui:ui-client:1.0.0-alpha11
, androidx.privacysandbox.ui:ui-core:1.0.0-alpha11
и androidx.privacysandbox.ui:ui-provider:1.0.0-alpha11
. Версия 1.0.0-alpha11 содержит эти коммиты .
Новые возможности
- Представлен экспериментальный API
DelegatingSandboxedUiAdapter
, который расширяетSandboxedUiAdapter
и может использоваться для делегирования между различнымиSandboxedUiAdapters
. Когда этот адаптер установлен на клиентском контейнере, таком какSandboxedSdkView
, делегирующий адаптер может изменить адаптер делегата с помощьюupdateDelegate
. Это закроет существующий сеанс и создаст новыйSandboxedUiAdapter.Session
для нового делегата. Это позволяет осуществлять плавные переходы между делегатами. ( I5f1c5 , I9e3e7 ) - Добавлена улучшенная поддержка
SandboxedSdkView
для заполнения. ( Ic414f )
Исправление ошибок
- Исправлена ошибка
NullPointerException
, которая могла возникнуть при глобальном событии макета.
Версия 1.0.0-альфа10
18 сентября 2024 г.
Выпущены androidx.privacysandbox.ui:ui-client:1.0.0-alpha10
, androidx.privacysandbox.ui:ui-core:1.0.0-alpha10
и androidx.privacysandbox.ui:ui-provider:1.0.0-alpha10
. Версия 1.0.0-alpha10 содержит эти коммиты .
Новые возможности
- Обновлена логика открытия сеанса: теперь сеанс внутри
SandboxedSdkView
открывается только в том случае, если окно, содержащееSandboxedSdkView
, видимо. - Обновлена логика
SessionObserver
для отправкиonUiContainerChanged
при изменении видимости окна, содержащегоSandboxedSdkView
.
Исправление ошибок
- Вызвать
onUiContainerChanged
при изменении видимости окна ( I541cf ) - Удалено ручное описание доступа к новым API платформы, поскольку это происходит автоматически через моделирование API при использовании R8 с AGP 7.3 или более поздней версии (например, R8 версии 3.3) и для всех сборок при использовании AGP 8.1 или более поздней версии (например, D8 версии 8.1). Клиентам, не использующим AGP, рекомендуется обновиться до D8 версии 8.1 или более поздней версии. Подробнее см. в этой статье . ( If6b4c , b/345472586 )
Версия 1.0.0-альфа09
26 июня 2024 г.
Выпущены androidx.privacysandbox.ui:ui-client:1.0.0-alpha09
, androidx.privacysandbox.ui:ui-core:1.0.0-alpha09
и androidx.privacysandbox.ui:ui-provider:1.0.0-alpha09
. Версия 1.0.0-alpha09 содержит эти коммиты .
Новые возможности
- Введены абстрактные классы
AbstractSandboxedUiAdapter
иAbstractSandboxedUiAdapter.AbstractSession
, которые могут использоваться поставщиками пользовательского интерфейса, чтобы избежать реализации всех интерфейсовSandboxedUiAdapter
илиSession
. Поставщикам пользовательского интерфейса рекомендуется использовать эти абстрактные классы. - Добавлена логика
registerObserverFactory
, которая позволяет прикрепитьSessionObserverFactory
кSandboxedUiAdapter
. КогдаSessionObserverFactory
прикрепляется к адаптеру,SessionObserver
будет создан для каждого нового сеанса пользовательского интерфейса, созданного для этого адаптера. СозданныйSessionObserver
получит обратный вызовonSessionOpened
при открытии сеанса пользовательского интерфейса. Когда представление пользовательского интерфейса представленияSession
изменяется, будет вызванSessionObserver.onUiContainerChanged
.onUiContainerChanged
регулируется и будет вызываться не чаще, чем каждые 200 мс. - Добавлен
SandboxedSdkViewUiInfo
, который можно создать изBundle
, отправленного вSessionObserver.onUiContainerChanged
. Этот объект представляет состояние пользовательского интерфейсаSandboxedSdkView
, который размещает сеанс пользовательского интерфейса. Он содержит информацию о высоте и ширине,Rect
, представляющий геометрию представления, видимого на экране, и подсказку непрозрачности, представляющую непрозрачность представления.
Изменения API
- Добавить подсказку о непрозрачности в
SandboxedSdkViewUiInfo
. ( I093ac ) - Добавьте
SessionObserver.onUiContainerChanged
иSandboxedSdkViewUiInfo
. ( Ie98bc ) - Добавить интерфейс
SessionObserver
и логику регистрации. ( I047dc ) - Добавьте
AbstractSandboxedUiAdapter
иAbstractSession
. ( I3617a )
Известные проблемы
- Если поставщик пользовательского интерфейса находится в том же процессе, что и клиентское приложение,
SessionObserver.onUiContainerChanged
не отправляется при прокрутке контейнера.
Версия 1.0.0-альфа08
14 мая 2024 г.
Выпущены androidx.privacysandbox.ui:ui-client:1.0.0-alpha08
, androidx.privacysandbox.ui:ui-core:1.0.0-alpha08
и androidx.privacysandbox.ui:ui-provider:1.0.0-alpha08
. Версия 1.0.0-alpha08 содержит эти коммиты .
Новые возможности
- Добавлена поддержка использования
SandboxedSdkView
внутриPoolingContainer
, такого какRecyclerView
. КогдаSandboxedSdkView
имеет родительский элементPoolingContainer
, жизненный цикл его сеансов пользовательского интерфейса будет соответствовать циклуPoolingContainer
, чтобы гарантировать сохранение сеанса при отсоединении окна.
Изменения API
- Устаревшие API Privacy Sandbox Activity. Теперь эти API можно найти в специальной библиотеке Activity
androidx.privacysandbox.activity
. ( I68beb )
Исправление ошибок
- Исправлена ошибка рендеринга при отображении удаленного контента внутри контейнеров пула. ( I804df )
- Исправлена ошибка, вызывавшая проблемы с рендерингом
ViewGroups
в режиме обратной совместимости. ( I8de92 ) - Если одним из родительских элементов
SandboxedSdkView
являетсяPoolingContainer
, сеанс пользовательского интерфейса закрывается, когдаPoolingContainer
указывает, что ресурсы могут быть освобождены, а не при отсоединении окна. ( I2046b )
Внешний вклад
-
GestureDetectorCompat
теперь устарел, посколькуGestureDetector
доступен изminSdk
. ( Icc4cd )
Версия 1.0.0-альфа07
18 октября 2023 г.
Выпущены androidx.privacysandbox.ui:ui-client:1.0.0-alpha07
, androidx.privacysandbox.ui:ui-core:1.0.0-alpha07
и androidx.privacysandbox.ui:ui-provider:1.0.0-alpha07
. Версия 1.0.0-alpha07 содержит эти коммиты.
Новые возможности
- Добавлена поддержка обратной совместимости для библиотеки. В API 33 и ниже представление поставщика будет отображаться внутри процесса приложения, в другом загрузчике классов. ( If0b7a )
- Добавлена логика, которая позволяет изменять размер контейнеров хоста и провайдера в одном кадре, чтобы избежать видимых подтормаживаний пользовательского интерфейса. ( Ic2cd9 )
Изменения API
- MinSdk для библиотеки повышен до API 21. ( I474b8 )
Версия 1.0.0-альфа06
20 сентября 2023 г.
Выпущены androidx.privacysandbox.ui:ui-client:1.0.0-alpha06
, androidx.privacysandbox.ui:ui-core:1.0.0-alpha06
и androidx.privacysandbox.ui:ui-provider:1.0.0-alpha06
. Версия 1.0.0-alpha06 содержит эти коммиты.
Новые возможности
- Добавлена логика для присоединения
SandboxedSdkView
к «родительскому» View, в котором он может прокручиваться. Это гарантирует, что содержимоеSandboxedSdkView
не будет загораживать другие представления или любые компоненты пользовательского интерфейса за пределами представления корневого содержимого. ( I9ea94 )
Изменения API
- Переименуйте
SandboxedSdkView.setZOrderOnTopAndEnableUserInteraction
вorderProviderUiAboveClientUi
( Iecb7e ).
Исправление ошибок
- Отправьте правильное значение Z-порядка на хост. ( Ib0ddf )
- Передача сенсорного фокуса только для вертикальной прокрутки/перелистывания. ( I0528c )
Версия 1.0.0-альфа05
9 августа 2023 г.
Выпущены androidx.privacysandbox.ui:ui-client:1.0.0-alpha05
, androidx.privacysandbox.ui:ui-core:1.0.0-alpha05
и androidx.privacysandbox.ui:ui-provider:1.0.0-alpha05
. Версия 1.0.0-alpha05 содержит эти коммиты.
Новые возможности
- Добавлена логика для передачи сенсорного фокуса на хост при прокрутке и жестах перелистывания, исходящих из
SandboxedSdkView
. Это позволяет UI провайдера хостинга прокручиваемого контейнера клиента правильно реагировать на прокрутку и перелистывание.
Изменения API
- Добавлен параметр
windowInputToken
вSandboxedUiAdapter
( Ief578 )
Исправление ошибок
- Установить состояние сеанса на «Активный» после первого розыгрыша ( I36f3f )
- Исправлена проблема с макетом
SandboxedSdkView
. ( I09cb8 ) - Добавлена логика для передачи сенсорного фокуса на хост. ( I33b54 )
- Добавьте параметр
windowInputToken
вSandboxedUiAdapter
. Это необходимо для того, чтобы токенSurfaceControlViewHost
был правильно связан с хостом встроенной иерархии. ( Ief578 ) - Запустите
notifyResized
внутри основного потока. ( I62440 ) - Исправлен сбой в потоке
Session.close()
. ( I5392e )
Версия 1.0.0-альфа04
21 июня 2023 г.
Выпущены androidx.privacysandbox.ui:ui-client:1.0.0-alpha04
, androidx.privacysandbox.ui:ui-core:1.0.0-alpha04
и androidx.privacysandbox.ui:ui-provider:1.0.0-alpha04
. Версия 1.0.0-alpha04 содержит эти коммиты.
Новые возможности
- Представляем
SdkActivityLauncher
. Интерфейс, позволяющий SDK, поддерживающим среду выполнения, запускать действия. ( I5b3dc )
Исправление ошибок
- Исправление состояния гонки
notifyZOrderChanged
. Гарантирует, что поставщик пользовательского интерфейса уведомляется обо всех изменениях Z-порядка. Поставщик пользовательского интерфейса не будет явно уведомлен, если Z-порядокSandboxedSdkView
изменяется до вызова openSession.
Версия 1.0.0-альфа03
24 мая 2023 г.
Выпущены androidx.privacysandbox.ui:ui-client:1.0.0-alpha03
, androidx.privacysandbox.ui:ui-core:1.0.0-alpha03
и androidx.privacysandbox.ui:ui-provider:1.0.0-alpha03
. Версия 1.0.0-alpha03 содержит эти коммиты.
Новые возможности
-
StateChangedListener
информирует приложение об изменениях в сеансе пользовательского интерфейса.
Изменения API
- Добавлен
StateChangedListener
для заменыErrorConsumer
( Icd5d3 )
Исправление ошибок
- Исправлено состояние гонки
notifyZOrderChanged
, теперь поставщик пользовательского интерфейса уведомляется обо всех изменениях Z-порядка.
Версия 1.0.0-альфа02
19 апреля 2023 г.
Выпущены androidx.privacysandbox.ui:ui-client:1.0.0-alpha02
, androidx.privacysandbox.ui:ui-core:1.0.0-alpha02
и androidx.privacysandbox.ui:ui-provider:1.0.0-alpha02
. Версия 1.0.0-alpha02 содержит эти коммиты.
Исправление ошибок
- Отключен тест на отслаиваниеChangingSandboxedSdkViewLayoutChangesChildLayout тест
Версия 1.0.0-альфа01
8 марта 2023 г.
Выпущены androidx.privacysandbox.ui:ui-client:1.0.0-alpha01
, androidx.privacysandbox.ui:ui-core:1.0.0-alpha01
и androidx.privacysandbox.ui:ui-provider:1.0.0-alpha01
. Версия 1.0.0-alpha01 содержит эти коммиты.
Новые возможности
- Это новые библиотеки Jetpack, которые приложения и Runtime Enabled SDK (Privacy Sandbox) могут использовать, чтобы позволить приложению (клиенту) размещать любой пользовательский интерфейс, предоставляемый SDK (поставщиком).