Window Manager

O gerenciador de janelas ajuda os desenvolvedores de aplicativos a oferecer compatibilidade com novos formatos de dispositivo e a fornecer uma plataforma de API comum para diferentes recursos do gerenciador, em versões antigas e novas da plataforma. A versão inicial é destinada a dispositivos dobráveis, enquanto as versões futuras se estenderão a mais tipos de telas e recursos de janela.
Atualização mais recente Versão estável atual Próximo candidato a lançamento Versão Beta Versão Alfa
24 de março de 2021 - - - 1.0.0-alpha05

Como declarar dependências

Para acrescentar uma dependência no Window Manager, é necessário adicionar o repositório Maven do Google ao projeto. Leia Repositório Maven do Google para ver mais informações.

Adicione as dependências dos artefatos necessários no arquivo build.gradle para seu app ou módulo:

dependencies {
    implementation "androidx.window:window:1.0.0-alpha05"
}

Feedback

Seu feedback ajuda a melhorar o Jetpack. Avise se você descobrir novos problemas ou tiver ideias para melhorar esta biblioteca. Consulte os problemas existentes (link em inglês) nesta biblioteca antes de criar um novo. Adicione seu voto a um problema existente clicando no botão de estrela.

Criar novo problema

Consulte a documentação do Issue Tracker para saber mais.

Versão 1.0.0

Versão 1.0.0-alpha05

24 de março de 2021

Lançamento de androidx.window:window:1.0.0-alpha05. A versão 1.0.0-alpha05 contém estas confirmações.

Novos recursos

Adicionamos métodos de conveniência ao FoldingFeature para que os apps possam saber se o recurso está separando ou obscurecendo e determinar a orientação da articulação. Também escondemos o tipo de articulação.

Estamos removendo os métodos de leitura síncronos do WindowManager. Os métodos de leitura síncrona são propensos a erros, já que há uma disputa implícita. Registre listeners e callbacks para receber atualizações no WindowLayoutInfo.

Mudanças na API

  • Métodos de conveniência foram adicionados para trabalhar com o FoldingFeatures (Ie733f).
  • Métodos de leitura síncrona do WindowManager foram removidos (I96fd4).

Versão 1.0.0-alpha04

10 de Março de 2021

Lançamento de androidx.window:window:1.0.0-alpha04. A versão 1.0.0-alpha04 contém estas confirmações.

Novos recursos

  • Correção de um bug em que nenhum WindowLayoutInfo é emitido se não há uma implementação de OEM. Agora, emitimos um WIndowLayoutInfo vazio.
  • Correção de um bug em que o estado não era atualizado corretamente se o estado da dobradiça mudasse enquanto o app era colocado em segundo plano. Agora o estado será consistente.
  • Atualize nossos arquivos Proguard para ignorar avisos de dependências de tempo de execução.

Correções de bugs

  • Emissão de um valor vazio quando a biblioteca do OEM está ausente (Ide935).

Versão 1.0.0-alpha03

18 de fevereiro de 2021

Lançamento de androidx.window:window:1.0.0-alpha03. A versão 1.0.0-alpha03 contém essas confirmações.

Novos recursos

  • Emissão de um valor vazio para WindowLayoutInfo quando a implementação do OEM estiver vazia. Isso facilitará o uso da biblioteca em mais dispositivos. Como as APIs são assíncronas, ainda é recomendável que os apps gravem um código de defesa e emitam um valor padrão após um tempo limite. Não há garantias de implementações do OEM, e o valor inicial pode apresentar atraso.

Correções de bugs

  • Emissão de um valor vazio quando a biblioteca do OEM está ausente (Ide935).

Versão 1.0.0-alpha02

27 de janeiro de 2021

Lançamento de androidx.window:window:1.0.0-alpha02. A versão 1.0.0-alpha02 contém estas confirmações.

Novos recursos

  • Nós suspendemos algumas APIs para ajudar a simplificar o uso delas e reduzir erros. Alguns exemplos relevantes são a remoção das operações de leitura síncronas do WindowManager e a suspensão do uso do DeviceState. As operações de leitura síncronas podem levar a disputas e apresentar uma IU incorreta.

  • Convertemos o DisplayFeature em uma interface que outros recursos implementarão daqui em diante. Nosso primeiro recurso é o FoldingFeature, que agora é a representação de uma dobra de tela ou articulação. Ele também contém o estado da articulação que substitui o DeviceState.

  • O WindowMetrics foi introduzido no Android 11 para oferecer aos desenvolvedores uma forma simples de consultar métricas sobre uma janela, como a posição e o tamanho na tela e os encartes do sistema. Retiramos a API nessa versão para que os desenvolvedores possam aproveitar o WindowMetrics e continuar oferecendo compatibilidade com versões anteriores do Android. O WindowMetrics pode ser adquirido pelas APIs WindowManager#getCurrentWindowMetrics() e WindowManager#getMaximedWindowMetrics().

Mudanças na API

  • Suspensão do uso das APIs que serão removidas na próxima versão Alfa (Ib7cc4).
  • Atualização da ExtensionInterface para aceitar referências explícitas de atividade (I07ded).
  • Introdução da API WindowMetrics (I3ccee).
  • Remoção dos métodos de leitura síncronos do WindowManager (I69983).
  • Proteção do pacote ExtensionWindowBackend (Ied208).

Correções de bugs

  • Atualização das APIs ExtensionInterface para aceitar contextos visuais (I8e827).

Contribuição externa

  • Mescla de DeviceState e WindowLayoutInfo para facilitar o acesso aos dados (Id34f4).

Versão 1.0.0-alpha01

27 de fevereiro de 2020

Lançamento de androidx.window:window:1.0.0-alpha01 e androidx.window:window-extensions:1.0.0-alpha01. A versão 1.0.0-alpha01 contém essas confirmações (link em inglês). Essa é a primeira versão da biblioteca do Window Manager.

Novos recursos

  • DisplayFeature: essa nova API identifica interrupções nas superfícies contínuas de telas planas, como articulações ou dobras
  • DeviceState: essa nova API informa a posição atual do smartphone a partir de uma lista de posições definidas (por exemplo, CLOSED, OPENED, HALF_OPENED etc.)