конфиденциальностьпесочница пользовательский интерфейс

ДЕЛО
Последнее обновление Стабильный релиз Кандидат на релиз Бета-релиз Альфа-релиз
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 (поставщиком).