Wear

Guia do usuário  Exemplo de código (link em inglês)
Crie aplicativos para smartwatches Wear OS by Google.

Esta tabela lista todos os artefatos no grupo androidx.wear.

Artefato Versão estável atual Próximo candidato a lançamento Versão Beta Versão Alfa
wear 1.1.0 - - 1.2.0-alpha11
wear-input 1.0.0 - - 1.1.0-alpha03
wear-complications-data - - - 1.0.0-alpha17
wear-complications-provider - - - 1.0.0-alpha17
wear-watchface - - - 1.0.0-alpha17
wear-watchface-client - - - 1.0.0-alpha17
wear-watchface-complications-rendering - - - 1.0.0-alpha17
wear-watchface-data - - - 1.0.0-alpha17
wear-watchface-editor - - - 1.0.0-alpha17
wear-watchface-style - - - 1.0.0-alpha17
wear-ongoing - - - 1.0.0-alpha06
wear-phone-interactions - - - 1.0.0-alpha05
wear-remote-interactions - - - 1.0.0-alpha03
Última atualização desta biblioteca: 30 de junho de 2021

Como declarar dependências

Para adicionar uma dependência ao Wear, adicione o repositório Maven do Google ao seu 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:

Groovy

dependencies {
    implementation "androidx.wear:wear:1.1.0"

    // Add support for wearable specific inputs
    implementation "androidx.wear:wear-input:1.0.0"
    implementation "androidx.wear:wear-input-testing:1.0.0"

    // Use to implement wear watchface complications
    implementation "androidx.wear:wear-complications-provider:1.0.0-alpha17"

    // Use to implement wear watchfaces
    implementation "androidx.wear:wear-watchface:1.0.0-alpha17"

    // Use to implement a watchface style and complication editor
    implementation "androidx.wear:wear-watchface-editor:1.0.0-alpha17"

    // Use to implement wear ongoing activities
    implementation "androidx.wear:wear-ongoing:1.0.0-alpha06"

    // Use to implement support for interactions from the Wearables to Phones
    implementation "androidx.wear:wear-phone-interactions:1.0.0-alpha05"
    // Use to implement support for interactions between the Wearables and Phones
    implementation "androidx.wear:wear-remote-interactions:1.0.0-alpha03"
}

Kotlin

dependencies {
    implementation("androidx.wear:wear:1.1.0")

    // Add support for wearable specific inputs
    implementation("androidx.wear:wear-input:1.0.0")
    implementation("androidx.wear:wear-input-testing:1.0.0")

    // Use to implement wear watchface complications
    implementation("androidx.wear:wear-complications-provider:1.0.0-alpha17")

    // Use to implement wear watchfaces
    implementation("androidx.wear:wear-watchface:1.0.0-alpha17")
}

Para ver mais informações sobre dependências, consulte Adicionar dependências de build.

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 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 da Wear Ongoing & Interactions

Wear-Phone-Interactions versão 1.0.0-alpha05

30 de junho de 2021

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

Correções de bugs

  • Parâmetros documentados que precisam ser transmitidos no construtor para BridgingConfig.Builder.

Wear-Ongoing versão 1.0.0-alpha06

2 de junho de 2021

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

Mudanças na API

  • Adição do campo "Título" à atividade em andamento (I7a405).

Correções de bugs

  • SerializationHelper.copy() agora faz uma cópia defensiva das informações (I8b276).
  • Melhoria na documentação de setCategory (Iff01f)

Wear Ongoing: versão 1.0.0-alpha05

18 de maio de 2021

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

Mudanças na API

  • A OngoingActivity agora tem getters para recuperar todos os valores definidos diretamente pelo builder (ou os padrões da notificação associada) (Id8ac8).

    • A nova classe Status agora é usada para criar o status da OngoingActivity.
    • O OngoingActivityData e o OngoingActivityStatus não fazem mais parte da API pública.
  • As classes TextStatusPart e TimerStatusPart não fazem mais parte da API pública (I57fb6).

    • Para criar uma Part com texto estático, use Status.TextPart.
    • Para criar uma Part com cronômetro (contagem progressiva), use Status.Stopwatch.
    • Para criar uma Part com timer (contagem regressiva), use Status.Timer.

Wear-Ongoing: versão 1.0.0-alpha04

5 de maio de 2021

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

Mudanças na API

  • Na OngoingActivity, os métodos fromExistingOngoingActivity agora são chamados de recoverOngoingActivity.
  • A OngoingActivity agora tem um conjunto completo de getters, o mesmo anteriormente disponível apenas no OngoingActivityData (I0ee4d).

Wear-Phone-Interactions: versão 1.0.0-alpha04

7 de abril de 2021

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

Mudanças na API

  • Atualização das constantes de ErrorCode para tornar a nova biblioteca compatível com versões anteriores da implementação na Biblioteca de Suporte de Wearables.

Correções de bugs

  • Correção da exceção causada pela nova API OAuth ao iniciar uma sessão OAuth.

Wear-Remote-Interactions: versão 1.0.0-alpha03

7 de abril de 2021

Lançamento de androidx.wear:wear-remote-interactions:1.0.0-alpha03. A versão 1.0.0-alpha03 contém estas confirmações.

Mudanças na API

  • Mudança da classe PlayStoreAvailability para que ela passe a conter um objeto complementar com métodos estáticos. O uso continua o mesmo.

Correções de bugs

  • Correção do documento de resumo da classe WatchFaceConfigIntentHelper para mostrar corretamente o exemplo de código com caracteres HTML reais.

Wear-Ongoing Wear-Phone-Interactions: versão 1.0.0-alpha03

10 de março de 2021

Lançamento de androidx.wear:wear-ongoing:1.0.0-alpha03 e androidx.wear:wear-phone-interactions:1.0.0-alpha03. A versão 1.0.0-alpha03 contém estas confirmações.

Novos recursos

  • Migrar o OAuthClient da Biblioteca de Suporte de Wearables para o AndroidX. Esta classe migrada foi renomeada como RemoteAuthClient e oferece compatibilidade com a autenticação remota em wearables, além de compatibilidade com a adição da extensão PKCE OAuth. Outros gerenciadores e classes auxiliares para comunicação também são fornecidos.
  • As atividades contínuas agora podem ser associadas, usando o novo construtor de OngoingActivity.Builder, a uma notificação que tenha uma tag.

Mudanças na API

  • Foi adicionada compatibilidade com tags de notificação à biblioteca Ongoing Activities (I653b4).
  • O OAuthClient foi migrado da Biblioteca de Suporte do Wear para o AndroidX e foi adicionada compatibilidade com a extensão PKCE OAuth (I3eaaa).

Wear-Remote-Interactions versão 1.0.0-alpha02

10 de março de 2021

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

Novos recursos

  • A classe PlayStoreAvailability foi migrada da Biblioteca de Suporte de Wearables para o AndroidX, que oferece uma API para verificar se a Play Store está disponível no smartphone.

Correções de bugs

  • A classe PlayStoreAvailability foi migrada da Biblioteca de Suporte de Wearables para o AndroidX (I69bfe).

Versão 1.0.0-alpha02

10 de fevereiro de 2021

Lançamento de androidx.wear:wear-ongoing:1.0.0-alpha02 e androidx.wear:wear-phone-interactions:1.0.0-alpha02. A versão 1.0.0-alpha02 contém estas confirmações.

Mudanças na API

  • Adição de compatibilidade com status mais complexo. Eles são compostos de um modelo (ou vários) e uma série de partes que serão usadas para preencher os marcadores do modelo. O OngoingActivityStatus agora tem um método estático para criar status simples com apenas uma parte (um texto ou timer), e um builder para criar status mais complexos (I1fe81).
  • As classes BridgingManager e BridgingConfig da Biblioteca de Suporte do Wear para o AndroidX oferecem APIs para ativar/desativar notificações durante o tempo de execução e, opcionalmente, definir tags para notificações isentas do modo bridge (I3a17e).

Versão 1.0.0-alpha01

27 de janeiro de 2021

Lançamento de androidx.wear:wear-ongoing:1.0.0-alpha01, androidx.wear:wear-phone-interactions:1.0.0-alpha01 e androidx.wear:wear-remote-interactions:1.0.0-alpha01. A versão 1.0.0-alpha01 contém estas confirmações.

Mudanças na API

  • Migração da biblioteca Ongoing Activities para uma nova sub-biblioteca: wear-ongoing. As classes agora ficam no pacote androidx.wear.ongoing (antes chamado de androidx.wear.ongoingactivities) (I7c029).

  • Criação de uma nova biblioteca de suporte para conter classes compatíveis com interações de wearables com smartphones. Ela é inicialmente preenchida com classes migradas da Biblioteca de Suporte de Wearables (Id5180).

  • Migração da classe PhoneDeviceType da Biblioteca de Suporte de Wearables para AndroidX. A classe migrada é renomeada como PhoneTypeHelper, que fornece métodos auxiliares para determinar o tipo de smartphone ao qual o relógio atual está pareado, para uso apenas em dispositivos wearables (Ibd947).

  • Criação de uma nova biblioteca de suporte para conter classes compatíveis com interações entre wearables e smartphones. Ela é inicialmente preenchida com classes migradas da Biblioteca de Suporte de Wearables (I9deb4).

  • Migração da classe WatchFaceCompanion da Biblioteca de Suporte de Wearables para AndroidX. A classe migrada é renomeada como WatchFaceConfigIntentHelper, que oferece funções auxiliares para especificar o nome do componente e o ID nas atividades de configuração do mostrador do relógio em apps complementares no smartphone. Ela também pode ser usada localmente para configurar o mostrador do relógio no dispositivo wearable (Ia455f).

Wear Complications and Watchface 1.0.0

Versão 1.0.0-alpha17

30 de junho de 2021

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

Novos recursos

  • Em GlesRenderer, makeUiThreadContextCurrent e makeBackgroundThreadContextCurrent foram substituídos por runUiThreadGlCommands e runBackgroundThreadGlCommands, que aceitam um Runnable. A biblioteca garante que somente um comando GL executável possa ser executado por vez.

  • Para facilitar a inicialização de UiThread, adicionamos CanvasRenderer.uiThreadInit, que é chamado uma vez no UiThread antes de qualquer chamada ser renderizada. Também adicionamos o atributo onRendererCreated ao CanvasComplication, que facilita o compartilhamento do estado para Renderer e CanvasComplication.

  • Para maior clareza, renomeamos Complication como ComplicationSlot e complicationId para complicationSlotId ou complicationInstanceId, dependendo do uso

Mudanças na API

  • Para maior clareza, renomeamos Complication como ComplicationSlot e complicationId como complicationSlotId ou complicationInstanceId, dependendo do uso. As classes que usam "Complication" também foram renomeadas. Por exemplo, "ComplicationsManager" agora é chamada "ComplicationSlotsManager" (I4da44).
  • Em GlesRenderer, makeUiThreadContextCurrent e makeBackgroundThreadContextCurrent foram substituídas por runUiThreadGlCommands e runBackgroundThreadGlCommands, que aceitam Runnable. Essas funções só são necessárias se você precisa fazer chamadas de GL fora da renderização, runBackgroundThreadGlCommands e onUiThreadGlSurfaceCreated. Isso é necessário porque pode haver vários GlesRenderers, cada um com os próprios contextos no mesmo processo, possivelmente de diferentes mostradores do relógio. Além disso, o acesso ao contexto GL compartilhado atual agora é sincronizado (I04d59).
  • Adicionamos CanvasRenderer.uiThreadInit, que é chamado uma vez no UiThread antes de qualquer chamada para renderizar. Além disso, para maior clareza na GlesRenderer, renomeamos onGlContextCreated como onBackgroundThreadGlContextCreated e onGlSurfaceCreated como onUiThreadGlSurfaceCreated (If86d0).
  • Os HeadlessWatchFaceClient e InteractiveWatchFaceClient getComplicationsSlotState foram renomeados como getComplicationSlotsState. Em ComplicationSlot: createRoundRectComplicationBuilder, createBackgroundComplicationBuilder e createEdgeComplicationBuilder foram renomeados como createRoundRectComplicationSlotBuilder, createBackgroundComplicationSlotBuilder e createEdgeComplicationSlotBuilder, respectivamente (Ib9adc).
  • Adição de onRendererCreated ao CanvasComplication, facilitando o compartilhamento de estado e CanvasComplication (I5e1ac).

Versão 1.0.0-alpha16

16 de junho de 2021

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

Novos recursos

  • Corrigimos diversos bugs relacionados às mudanças recentes no modelo de encadeamento e cuidamos de outros problemas com o editor de mostrador do relógio.

Correções de bugs

  • Prevenção do NPE em onComplicationProviderChooserResult (b/189594557)
  • Correção de problemas com superfícies desatualizadas e drawBlack (b/189452267).
  • Correção de disputa ao acessar complicationsManager.watchState (b/189457893).
  • Correção de bug em ciclo de vida da linha de execução em segundo plano (b/189445428).
  • Correção de problemas no editor de mostrador do relógio de versões anteriores (b/189126313).
  • Parâmetros de inicialização direta não são atualizados para mudanças de estilo do editor (b/187177307).

Versão 1.0.0-alpha15

2 de junho de 2021

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

Novos recursos

A maior parte da inicialização do mostrador do relógio é feita em uma linha de execução em segundo plano. No entanto, após o carregamento de toda a renderização do mostrador, o restante ocorre na UiThread. Há uma barreira de memória entre o carregamento e a renderização, então a maioria dos mostradores de relógio do usuário não precisa fazer nada de especial. Os mostradores que usam o GLES podem ser uma exceção, uma vez que o contexto é específico da linha de execução e que criamos dois contextos vinculados. Então, é possível fazer upload de recursos do GL (por exemplo, texturas e sombreadores) na linha de execução em segundo plano e usá-los na UiThread.

Dividimos a construção de mostradores de relógio em três funções: createUserStyleSchema, createComplicationsManager e createWatchFace. Presumimos que a createUserStyleSchema e a createComplicationsManager são rápidas e que a createWatchFace pode levar algum tempo para carregar os recursos. Aproveitando isso, introduzimos WatchFaceControlClient.getDefaultProviderPoliciesAndType, que retorna um mapa de IDs de complicação para DefaultComplicationProviderPolicies e o ComplicationType padrão. Isso é mais rápido do que criar uma instância headless, porque não é necessário inicializar o mostrador do relógio completamente para realizar a consulta.

Por fim, as complicações agora são construídas com uma CanvasComplicationFactory, que permite a construção lenta dos renderizadores de CanvasComplication.

Mudanças na API

  • A @TargetApi foi substituída pela @RequiresApi (I0184a, b/187447093, b/187447094).
  • Introduzimos WatchFaceControlClient.getDefaultProviderPoliciesAndType, que retorna um mapa de IDs de complicação para DefaultComplicationProviderPolicies e o ComplicationType padrão. Sempre que possível, um caminho rápido é usado para evitar que o mostrador do relógio seja totalmente construído. Para facilitar esse processo, a API WatchFaceService precisou mudar com dois novos métodos: createUserStyleSchema e createComplicationsManager, cujos resultados são transmitidos para createWatchFace. Além disso, as complicações agora são construídas com uma CanvasComplicationFactory, que permite a construção lenta dos renderizadores da CanvasComplication (Iad6c1).
  • Removemos Most_RECENT_APP de SystemProviders (I3df00).
  • ObservableWatchData agora é uma classe selada (Ic940d).
  • CanvasComplicationFactory.create, que normalmente é limitado por E/S, agora é chamado em uma linha de execução em segundo plano para cada complicação antes da renderização da linha de execução de IU ser iniciada. Há uma barreira de memória entre a construção e a renderização, então não são necessários primitivos de linhas de execução especiais (Ia18f2)
  • A construção do mostrador do relógio agora é feita em uma linha de execução em segundo plano, embora toda a renderização seja feita na linha de execução de IU. Para fazer isso, o GlesRenderer é compatível com dois contextos vinculados. WatchFaceControlClient.createHeadlessWatchFaceClient e WatchFaceControlClient.getOrCreateInteractiveWatchFaceClient podem ser resolvidas antes de WatchFaceService.createWatchFace ser concluída. As chamadas de API subsequentes serão bloqueadas até que a inicialização do mostrador do relógio seja concluída (Id9f41).
  • EXPANSION_DP e STROKE_WIDTH_DP não estão mais visíveis no api.txt (I54801).
  • Fizemos EditorSession.createOnWatchEditSession gerar uma TimeoutCancelException caso haja um erro em vez de enviar uma sessão nula. Além disso, o valor de retorno de EditorRequest.createFromIntent e EditorSession.createOnWatchEditingSession agora é NonNull (I41eb4).

Versão 1.0.0-alpha14

18 de maio de 2021

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

Novos recursos

  • EditorSession.openComplicationProviderChooser agora retorna ChosenComplicationProvider, que contém o ID de complicação ComplicationProviderInfo e um pacote com outros extras retornados pelo seletor de provedores.
  • Além disso, migramos constantemente códigos para o Kotlin, e a maior parte da API do mostrador do relógio agora está definida no Kotlin.

Mudanças na API

  • As propriedades eglContext e eglDisplay do GlesRenderer agora não são anuláveis. Os erros de GL agora são relatados pela GlesRenderer.GlesException em vez das RuntimeExceptions (Ib1005).
  • Migramos o androidx.wear.watchface.complications.rendering.ComplicationDrawable do Java para o Kotlin (Ibc3eb).
  • Migramos o androidx.wear.watchface.complications.rendering.ComplicationStyle do Java para o Kotlin (I3375e).
  • Adicionamos informações sobre o provedor de complicações para cada complicação na EditorSession (I37f14).
  • Estendemos o resultado do EditorSession.openComplicationProviderChooser para que inclua as informações retornadas pelo provedor escolhido (Iead6d).

Wear Complications e Watchface: versão 1.0.0-alpha13

5 de maio de 2021

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

Novos recursos

  • Os mostradores do relógio podem ter elementos visuais importantes além de mostrar a hora e as complicações. Para oferecer suporte a leitores de tela para isso, o mostrador do relógio agora pode especificar ContentDescriptionLabels de acessibilidade usando a propriedade additionalContentDescriptionLabels do renderizador. Além disso, para controlar a ordem de ContentDescriptionLabels, o accessibilityTraversalIndex foi adicionado às complicações. Isso pode ser modificado por uma ComplicationsUserStyleSetting.

  • Para incentivar os desenvolvedores a considerar cuidadosamente os leitores de tela, tornamos obrigatória a transmissão do campo contentDescription do ShortTextComplicationData.Builder, do LongTextComplicationData.Builder e do RangedValueComplicationData.Builder para os respectivos construtores. Se o ComplicationText.EMPTY for transmitido para o campo contentDescription, uma contentDescription será gerada automaticamente a partir do texto e do título.

  • O WatchFaceControlClient.getOrCreateInteractiveWatchFaceClient agora gerará uma ServiceStartFailureException se o mostrador do relógio gerar uma exceção durante a inicialização. Isso facilita o diagnóstico de problemas durante a inicialização do mostrador do relógio.

Mudanças na API

  • Adicionamos suporte para ter um nome de componente nulo em ComplicationProviderInfo, o que é necessário para compatibilidade com versões mais antigas do Wear OS (I744d2).
  • Migramos androidx.wear.complications.SystemProviders do Java para o Kotlin (Ia1f8b).
  • Ocultamos todas as classes da API pública que estão em android.support.wearable.complications e criamos wrappers correspondentes no AndroidX, quando necessário (I7bd50).
  • Renomeamos o método em TimeDifferenceComplicationText.Builder de setMinimumUnit para setMinimalTimeUnit (I20c64).
  • É obrigatório que o campo contentDescription do ShortTextComplicationData.Builder, do LongTextComplicationData.Builder e do RangedValueComplicationData.Builder seja transmitido no construtor (I8cb69).
  • Renomeamos ComplicationProviderService.onComplicationUpdate como onComplicationRequest e encapsulamos o código e o parâmetro de tipo desse método na ComplicationRequest de dados. O listener correspondente foi renomeado como ComplicationRequestListener e o método dele como ComplicationRequestListener.onComplicationData (Iaf146).
  • Removemos o método isActiveAt do ComplicationData e expusemos o campo validTimeRange. É possível substituir essa chamada de método por validTimeRange.contains (I65936).
  • Mudamos a descrição do método ComplicationProviderService.onComplicationActivated para receber um ComplicationType em vez de um int (Idb5ff).
  • Migração do ProviderUpdateRequester do Java para o Kotlin (Ibce13).
  • O GlesRender.makeContextCurrent agora é público. O código do mostrador do relógio pode precisar fazer chamadas gl fora de render e onGlContextCreated e, como pode haver um contexto interativo e um headless, é necessário chamar isso (I8a43c).
  • O WatchFaceControlClient.getOrCreateInteractiveWatchFaceClient agora gerará uma ServiceStartFailureException se o mostrador do relógio for gerado durante a inicialização. Além disso, o WatchFaceService agora gera uma exceção quando o createWatchFace demora mais de seis segundos (I59b2f).
  • Removemos a propriedade do código não utilizado da GlesTextureComplication (I28958).
  • O mostrador do relógio agora pode especificar ContentDescriptionLabels de acessibilidade usando a propriedade additionalContentDescriptionLabels do Renderer. Além disso, para controlar a ordem de ContentDescriptionLabels, o accessibilityTraversalIndex foi adicionado às complicações. Isso pode ser modificado por uma ComplicationsUserStyleSetting (Ib7362).
  • A documentação sobre o processamento de eventos de toque no mostrador do relógio foi expandida (Iaf31e).

Correções de bugs

  • O EditorSession.getComplicationsPreviewData() agora retorna um mapa para todas as complicações não vazias. Uma instância de EmptyComplicationData é usada para complicações vazias (I1ef7e).

Wear Complications e Watchface: versão 1.0.0-alpha12

21 de abril de 2021

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

Novos recursos

Os editores de mostradores de relógio precisam destacar partes do mostrador para ajudar a controlar que aspecto do relógio está sendo configurado. Estendemos o RenderParameters para permitir que os estilos e as complicações sejam destacados. Há uma nova HighlightLayer opcional que tem como objetivo ser opaca em cima do mostrador do relógio com transparência alfa (as APIs de captura de tela podem fazer isso, ou você pode fornecer a HighlightLayer por conta própria para obter a máxima flexibilidade). Por exemplo, se você tiver um estilo que permita configurar a aparência dos ponteiros do relógio, o renderizador na renderHighlightLayer poderá desenhar um contorno em volta deles.

Para estimular a compatibilidade do Complication Provider para acessibilidade, tornamos o campo contentDescription do PhotoImageComplicationData.Builder, do MonochromaticImageComplicationData.Builder e do SmallImageComplicationData.Builder para que sejam um argumento de construtor obrigatório. ComplicationTapFilter e Complication.createEdgeComplicationBuilder foram adicionados para oferecer compatibilidade com as complicações da borda (desenhadas ao redor da borda da tela). A renderização e o teste de hit das complicações da borda são deixados para o mostrador do relógio. O teste de hit da borda não é compatível com o editor complementar.

Mudanças na API

  • Adição do prefixo PROVIDER_ às constantes em SystemProviders (I1e773).
  • É obrigatório que o campo contentDescription do PhotoImageComplicationData.Builder, do MonochromaticImageComplicationData.Builder e do SmallImageComplicationData.Builder seja transmitido no construtor (I9643a).
  • ProviderInfoRetriever.requestPreviewComplicationData foi renomeado como retrievePreviewComplicationData (I911ee).
  • ComplicationProviderService foi migrado de Java para Kotlin (I849f2).
  • O método ComplicationProviderService.onBind agora é final (I39af5).
  • Restabelecemos a interface CanvasComplication e movemos CanvasComplicaitonDrawable, GlesTextureComplication e ComplicationHighlightRenderer para wear-watchface-complications-rendering (I84670).
  • RenderParameters foi refatorado para oferecer compatibilidade com a renderização de destaque estendida. Agora é possível solicitar a renderização de destaques para estilos de uma única complicação ou de todas. Além disso, o CanvasRenderer e o GlesRenderer têm um novo método abstrato renderHighlightLayer para renderizar qualquer destaque solicitado pelo editor. A camada foi renomeada para WatchFaceLayer (Ic2444).
  • ComplicationTapFilter e Complication.createEdgeComplicationBuilder foram adicionados para oferecer compatibilidade com complicações da borda. A renderização e o teste de hit das complicações da borda são deixados para o mostrador do relógio. Os testes de hit não são compatíveis com editores internos (Ia6604).
  • Para DoubleRangeUserStyleSetting e LongRangeUserStyleSetting: defaultValue, maximumValue e minimumValue agora são propriedades do Kotlin. Além disso, funções UserStyleSetting.Option como toBooleanOption, toCoplicationOptions, toListOption e similares foram removidas (I52899).
  • Adicione o tamanho do queixo às propriedades do dispositivo disponível para o mostrador do relógio (I76e1e).
  • O construtor do ComplicationHighlightRenderer agora aceita parâmetros outlineExpansion e outlineStrokeWidth (I87009).
  • ComplicationDrawable.getNoDataText agora faz parte da API pública (I00598).

Versão 1.0.0-alpha11

7 de abril de 2021

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

Novos recursos

  • Mais ajustes foram aplicados às APIs de mostrador do relógio. A maioria das mudanças é de renomeações simples, mas InteractiveWatchFaceWcsClient e InteractiveWatchFaceSysUiClient foram mescladas em InteractiveWatchFaceClient.

Mudanças na API

  • ContentDescriptionLabel.text agora é uma ComplicationText em vez da antiga TimeDependentText da Biblioteca de Suporte de Wearables (I80c03).
  • Não há garantias de que SystemProviders.GOOGLE_PAY esteja em todos os dispositivos Android R, então ele foi removido da lista. Ainda é possível usar esse provedor com a DefaultComplicationProviderPolicy (If01b5).
  • Renomeação de ComplicationUpdateCallback como ComplicationUpdateListener para manter a consistência (I61ec7).
  • O mapa no formato de conexão UserStyle mudou para Map<String, byte[]> e, por conveniência, uma classe UserStyleData foi adicionada à API pública e agora é usada por wear-watchface-client e wear-watchface-editor. Além disso, CustomValueUserStyleSetting.CustomValueOption.value agora é byte[] em vez de String (Iaa103).
  • UserStyleSetting e UserStyleSetting.Option agora usam UserStyleSetting.Id e UserStyleSetting.Option.Id, respectivamente, para armazenar os IDs em vez de uma string (I63f72).
  • InteractiveWatchFaceClient.SystemState foi renomeado como WatchUiState (I6a4e0).
  • InteractiveWatchFaceWcsClient e InteractiveWatchFaceSysUiClient foram mescladas porque era difícil explicar a divisão de responsabilidade (Iff3fa).
  • Os valores de enumeração da camada foram renomeados para maior clareza. Layer#TOP_LAYER agora é Layer#COMPLICATIONS_OVERLAY, e Layer#BASE_LAYER agora é Layer#BASE (Ia144e).
  • A interface UserStyleListener foi renomeada como UserStyleChangeListener (I18524).
  • A classe UserStyleRepository foi renomeada como CurrentUserStyleRepository (I6ea53).
  • InteractiveWatchFaceWcsClient.updateInstance foi renomeada como updateWatchfaceInstance (I321dc).
  • Os eventos TapFace WatchType foram renomeados para se alinhar com MotionEvents / Compose (I0dfd0).
  • takeWatchfaceScreenshot foi renomeado como renderWatchFaceToBitmap, e takeComplicationScreenshot foi renomeado como renderComplicationToBitmap (Ie0697).
  • A interface CanvasComplication foi substituída pela classe aberta CanvasComplicationDrawable (I1f81f).
  • WatcfaceControlServiceFactory foi removida da API pública (I1f8d3).
  • CanvasComplication.setData foi renomeada como CanvasComplication.loadData (If1239).
  • ComplicationsManager.bringAttentionToComplication foi renomeada como displayPressedAnimation (Ic4297).
  • WatchFaceService.createWatchFace agora tem uma anotação @UiThread (Ib54c2).
  • Mudança do nome de um parâmetro CanvasComplicationDrawable para corrigir um bug (I50dac).
  • Adição de HeadlessWatchFaceClient.toBundle() e HeadlessWatchFaceClient.createFromBundle para oferecer compatibilidade com o envio da HeadlessWatchFaceClient por AIDL (I07c35).
  • Agora, HeadlessWatchFaceClient e InteractiveWatchFaceClient têm ClientDisconnectListener e isConnectionAlive() para você observar se a conexão foi interrompida por algum motivo. Por exemplo, o mostrador do relógio foi encerrado (Ie446d).
  • WatchFaceControlClient#getOrCreateWallpaperServiceBackedInteractiveWatchFaceWcsClientAsync agora é uma função de suspensão e foi renomeada como getOrCreateInteractiveWatchFaceClient (Ib745d).
  • EditorState.commitChanges e hasCommitChanges() foram renomeadas como shouldCommitChanges() (I06e04).
  • previewComplicationData foi renomeado como previewComplicationsData para indicar que (geralmente) há mais de uma complicação no mapa (I56c06).
  • InteractiveWatchFaceWcsClient.bringAttentionToComplication foi renomeada como displayPressedAnimation para consistência com ComplicationsManager.displayPressedAnimation (Ic9999).
  • Todas as instâncias do ID de instância do mostrador do relógio foram encapsuladas em uma nova classe WatchFaceId (I45fdf).
  • A propriedade complicationState foi renomeada como complicationsState para indicar a pluralidade (Ided07).
  • Remoção de várias conversões wear-watchface-client Binder. Elas são desnecessárias (Icc4c0).
  • Para consistência, EditorServiceClient foi refatorada para o uso de listeners em vez de observadores (Iec3a4).
  • Adição de algumas anotações @Px ausentes em InteractiveWatchFaceSysUiClient e WatchFaceControlClient (I3277a).
  • Renomeação de EditorObserverCallback como EditorObserverListener para consistência (Ie572d).
  • EditorState.watchFaceInstanceId foi restrito ao nível de API do Android R e mais recentes e não é mais anulável (Id52bb).
  • EditorSession.launchComplicationProviderChooser foi renomeada como openComplicationProviderChooser (I9d441).
  • EditorSession.createOnWatchEditingSessionAsync foi renomeada como createOnWatchEditingSession e agora é uma função de suspensão (Id257b).
  • Adição de várias anotações @UiThread ausentes na EditorSession (I6935c).
  • UserStyleSetting.affectsLayers foi renomeado como affectedLayers (I6e22b).

Versão 1.0.0-alpha10

24 de março de 2021

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

Novos recursos

  • Agora é possível criar objetos gl abertos, por exemplo, texturas, durante WatchFaceService.createWatchFace, porque o GlesRenderer agora exige uma chamada explícita para initOpenGLContext, que pode ser feita dentro de createWatchFace.

Mudanças na API

  • IdAndComplicationData era um pouco estranho e foi removido da API pública. As classes e interfaces que o usavam foram refatoradas (I4c928).
  • Substituímos ReferenceTime por CountUpTimeReference e CountDownTimeReference, que são mais autoexplicativos (Ib66c6).
  • Adição de algumas anotações @Px e @ColorInt ausentes (I9bbc3).
  • Complication.complicationConfigExtras agora não é anulável e o padrão é Bundle.EMPTY (Iad04f).
  • Agora, GlesRenderer exige que você chame initOpenGLContext após a construção. Essa função era um detalhe interno, mas agora está na API pública para autorizar chamadas GL mais cedo dentro do createWatchFace (I726c2).
  • Removemos Complication.setRenderer porque não é mais necessário (Ie992f).
  • Complicaiton.setComplicationBounds não faz mais parte da API pública. Se você precisar ajustar a posição de uma complicação, use ComplicationsUserStyleSetting (Ibd9e5).
  • ComplicationsManager.TapCallback.onComplicationSingleTapped foi renomeado como onComplicationTapped (I3a55c).
  • ComplicationOutlineRenderer.drawComplicationSelectOutline foi renomeado como drawComplicationOutline (I14b88).

Versão 1.0.0-alpha09

10 de Março de 2021

Lançamento de androidx.wear:wear-complications-*:1.0.0-alpha09 e androidx.wear:wear-watchface-*:1.0.0-alpha09. A versão 1.0.0-alpha09 contém estas confirmações.

Novos recursos

  • A interface entre o host WCS/SysUI e o mostrador do relógio evoluiu. Agora, um editor pode determinar se uma mudança de estilo ativará ou desativará uma complicação (enabled = initiallyEnabled, além de qualquer substituição de ComplicationsUserStyleSetting). O EditorService.closeEditor também permite que a SysUI feche remotamente o editor de mostrador do relógio, se necessário.
  • Além disso, InteractiveWatchFaceWcsClient.setUserStyle tem um comando mais eficiente updateInstance que altera o ID da instância, define o estilo e limpa as complicações de uma só vez.

Mudanças na API

  • TraceEvents foram adicionados às bibliotecas de mostradores de relógio (I1a141).
  • ComplicationState agora tem uma nova propriedade initiallyEnabled que é útil para prever as consequências da mudança de estilos (I8c905).
  • Substituímos InteractiveWatchFaceWcsClient.setUserStyle por um comando mais eficiente updateInstance que altera o ID da instância, define o estilo e limpa as complicações (Ife6f6).
  • As APIs de captura de tela WatchFaceClient não compactam mais as capturas de tela porque esse processo era lento. Em vez disso, deixamos o pós-processamento para o autor da chamada (Id35af).
  • Agora é possível fechar remotamente um editor de mostrador do relógio usando EditorService.closeEditor (Ic5aa4).
  • Anotações de nulidade foram adicionadas (Ic16ed).

Versão 1.0.0-alpha08

24 de fevereiro de 2021

Lançamento do androidx.wear:wear-*:1.0.0-alpha08. A versão 1.0.0-alpha08 contém estas confirmações.

Novos recursos

  • Alguns mostradores de relógio são projetados de acordo com uma ou mais complicações específicas. Para isso, adicionamos Complication.Builder#setFixedComplicationProvider, que, se definido como verdadeiro, impede que o usuário mude a complicação nesse slot.
  • As bibliotecas do mostrador do relógio são o Kotlin e usam corrotinas (por exemplo, funções de suspensão). Para usuários de Java, fornecemos wrappers ListenableFuture para melhorar a interoperabilidade nas seguintes bibliotecas: wear/wear-watchface-guava, wear/wear-watchface-client-guava e wear/wear-watchface-editor-guava.

Mudanças na API

  • Removemos o suporte a toques duplos em complicações iniciando o seletor de provedores. Esse recurso não era comum em mostradores de relógio e complicava a implementação do SysUI (I3ef24).
  • Os métodos ProviderInfoRetriever podem gerar ServiceDisconnectedException se o vinculador fechar inesperadamente (Ib2cc4).
  • A partir do Android 11, existem restrições sobre quando o ProviderChooser pode ser executado, além de que gostaríamos que os editores fossem criados com o novo wear-watchface-editor para que o ComplicationHelperActivity seja removido da API pública (Ib19c1).
  • Remoção de métodos estáticos ComplicationText em favor dos builders (Ibe399).
  • Lançamos wrappers ListenableFuture para os métodos suspensos da biblioteca de mostradores de relógio (I16b2c).
  • Para clareza da API, adicionamos um construtor secundário a RenderParameters que não precisa de tonalidade, para uso com LayerModes diferentes de LayerMode.DRAW_OUTLINED (I497ea).
  • Anteriormente, ListUserStyleSetting era diferente do outro porque tinha um argumento padrão. Agora todos os construtores de subclasses StyleSetting assumem o valor padrão por último (I9dbfd).
  • A CanvasComplication foi refatorada para uso com um método oculto, o que facilita a implementação de uma subclasse (I5b321).
  • Refatoramos o EditorResult a favor de um novo EditorService e um EditorSession.broadcastState() para transmitir atualizações para um observador (normalmente SysUI) (Ic4370).
  • Alguns mostradores de relógio são construídos em torno de uma complicação específica como parte integral do mostrador do relógio em que o provedor não pode ser configurado pelo usuário. Para oferecer compatibilidade, adicionamos Complication.Builder#setFixedComplicationProvider (I4509e).
  • EditorRequest agora especifica o nome do pacote em vez de ComponentName, porque era inconveniente para o SysUI procurar o nome da classe do editor, e só precisamos do nome do pacote (Ib6814).

Versão 1.0.0-alpha07

10 de fevereiro de 2021

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

Novos recursos

  • WatchFaceService.createWatchFace agora é uma função de suspensão, o que significa que o mostrador do relógio não precisa mais bloquear a linha de execução de IU enquanto espera por I/O. Semelhante a wear-watchface-editor e wear-complications-data

Mudanças na API

  • Remoção da classe PhotoImage e uso direto de Icon (I8a70b).
  • Exposição do validTimeRange de ComplicationData (I91366).
  • Os atributos semelhantes a imagem agora são mais explícitos (I81700).
  • Refatoração de wear-watchface-editor e wear-complications-data para usar funções de suspensão em vez de corrotinas. Wrappers de compatibilidade futuros e rx java serão lançados posteriormente (If3c5f).
  • ProviderInfoRetriever agora gera uma PreviewNotAvailableException se requestPreviewComplicationData não puder retornar dados de visualização devido a problemas de conexão ou falta de compatibilidade com a API (I4964d).
  • WatchFaceControlService::createWatchFaceControlClient agora é uma função de suspensão e getOrCreateWallpaperServiceBackedInteractiveWatchFaceWcsClient agora getOrCreateWallpaperServiceBackedInteractiveWatchFaceWcsClientAsync é chamado, retornando Deferred<InteractiveWatchFaceWcsClient>. Wrappers de compatibilidade futuros e rx java serão lançados posteriormente (I5d461).
  • CATEGORY_PROVIDER_CONFIG_ACTION foi renomeado como CATEGORY_PROVIDER_CONFIG (I7c068).
  • Observe que createOnWatchEditingSession agora é uma função suspensa, porque o mostrador do relógio às vezes não estará disponível até o início da atividade do editor (Ida9aa).
  • WatchFaceService.createWatchFace agora é uma função de suspensão que permite a inicialização assíncrona. Anteriormente, você teria que bloquear a linha de execução principal (If076a).
  • UserStyle agora tem um operador de matriz e adicionamos assistentes de transmissão a UserStyle.Option (I35036.
  • Corrigimos um bug de gerenciamento de wireformats UserStyle que alteravam parte da API oculta instável (I8be09.
  • Adicionamos CustomValueUserStyleSetting, que permite armazenar uma única string específica de aplicativo em um UserStyle. Os editores de mostrador do relógio padrão ignoram esse valor (Ic04d2).
  • InstanceID não é transmitido nos extras de intent para as versões R e mais antigas do Android WearOS que não podem fazer upgrade. Para oferecer compatibilidade com elas, agora permitimos que o InstanceID seja nulo (Id8b78).
  • EditorRequest agora inclui o ComponentName do editor, que é definido como o componente em WatchFaceEditorContract.createIntent (I3cd06).
  • O EditorResult do mostrador do relógio agora inclui uma visualização de ComplicationData para permitir que o autor da chamada faça uma captura de tela do mostrador após a edição (I2c561).

Correções de bugs

  • Adição de substituições toString() para UserStyle, UserStyleSetting e UserStyleSchema, que faz com que trabalhar com essas classes seja mais agradável (I9f5ec).

Versão 1.0.0-alpha06

27 de janeiro de 2021

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

Novos recursos

  • Lançamos uma nova biblioteca wear/wear-watchface-editor, que permite que os desenvolvedores de mostradores de relógio e, possivelmente, OEMs criem um editor de estilo e complicação. O SysUI enviará uma intent ao mostrador do relógio, que usará a nova classe EditorSession para acessar os detalhes do WatchFace e registrar o resultado por Activity.setWatchRequestResult. Para permitir isso, adicionamos ProviderInfoRetriever.requestPreviewComplicationData, que permite aos editores de mostradores de relógio solicitar a visualização ComplicationData. A vantagem da visualização ComplicationData é que, diferentemente dos dados em tempo real, você não precisa se preocupar em mostrar caixas de diálogo de permissão ao renderizar o editor. Observe que se um usuário selecionar um provedor com uma permissão, ele ainda receberá uma solicitação para concedê-la.

Mudanças na API

  • ComplicationProviderInfo agora tem um campo para o ComponentName do provedor. A compatibilidade com esse campo será adicionada ao WearOS em breve e, enquanto isso, ele será nulo (Id8fc4).
  • Adicionamos ProviderInfoRetriever.requestPreviewComplicationData, que permite aos editores de mostradores do relógio solicitar a visualização ComplicationData. Isso é útil porque complicações em tempo real podem exigir permissões, e agora você pode exibir dados de visualização para complicações que não estão ativas (I2e1df).
  • ComplicationManager agora é um parâmetro opcional do construtor WatchFace, e os argumentos foram reordenados para permitir isso (I66c76).
  • Adicionamos um pacote opcional a Complications que, se definido, é mesclado com a intent enviada para iniciar a atividade do seletor de provedores (Ifd4ad).
  • Adicionamos uma nova biblioteca wear-watchface-editor para compatibilidade com mostradores de relógio e editores hospedados com SysUI. A SysUI iniciará esses editores enviando uma intent. O serviço de atividade do mostrador do relógio pode usar a nova classe EditorSession para acessar os detalhes do WatchFace e registrar o resultado usando Activity.setWatchRequestResult (I2110d).
  • LayerMode.DRAW_HIGHLIGHTED agora é chamado de LayerMode.DRAW_OUTLINED e RenderParameters.highlightComplicationId agora é chamado de RenderParameters.selectedComplicationId, que desenha um destaque na complicação especificada, além de um contorno (I90a40).
  • O futuro do WatchFaceControlClient.getOrCreateWallpaperServiceBackedInteractiveWatchFaceWcsClient agora poderá ser resolvido com uma ServiceStartFailureException se o serviço for desativado enquanto espera o mostrador do relógio ser criado (I0f509).
  • EditorSession.complicationPreviewData agora é um ListenableFuture porque a busca desses dados é um processo assíncrono (Iead9d).

Correções de bugs

  • Estamos removendo campos que não são usados de ComplicationOverlay, deixando ativos e complicationBounds (I17b71).

Versão 1.0.0-alpha05

13 de janeiro de 2021

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

Novos recursos

Mostradores de relógio geralmente são compatíveis com diversas configurações de complicação com um número variável de complicações mostrado. Para facilitar a configuração, agora temos compatibilidade com complicações inicialmente desativadas ao chamar setEnabled(false) no builder. É possível ativá-las mais tarde com ComplicationsUserStyleSetting.

Mudanças na API

  • ComplicationHelperActivity agora aceita Collection<ComplicationType> em vez de uma matriz int, facilitando o uso (I1f13d).
  • ProviderInfoRetriever.retrieveProviderInfo agora retorna ListenableFuture<ProviderInfo[]> corretamente (If2710).
  • Agora é possível criar uma complicação inicialmente desativada chamando setEnabled(false) no builder (Idaa53).
  • WatchFaceState agora tem uma propriedade isHeadless que só é verdadeira para instâncias headless (Ifa900).
  • ComplicationDrawable agora é compatível com o carregamento síncrono de drawables. Isso é usado pelas APIs de captura de tela (I34d4a).

Versão 1.0.0-alpha04

16 de dezembro de 2020

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

Novos recursos

  • A biblioteca de mostradores do relógio do Wear agora oferece compatibilidade com a configuração de limites por tipo. Por exemplo, você pode alternar para uma caixa delimitadora ampla para ComplicationType.LONG_TEXT enquanto usa uma caixa delimitadora menor para outros tipos.

Mudanças na API

  • As complicações agora usam ComplicationBounds, que agrupa um Map<ComplicationType, RectF> para compatibilidade com tamanhos de tipos de complicação (I1ebe7).
  • RenderParameters agora permite especificar a tonalidade do destaque para uso em capturas de tela (Iff42b).
  • Com exceção dos limites, agora é preciso usar ComplicationsUserStyleSetting para modificar as complicações. Isso serve para garantir a sincronização do SO (I8dc5d).
  • O Renderer agora é uma classe selada. Isso significa que o CanvasRenderer e o GlesRenderer agora são classes internas do Renderer (Iab5d4, b/173803230).
  • Renomeação de CanvasComplicationDrawable.drawHighlight para drawOutline. ObservableWatchData agora tem algumas anotações UiThread ausentes. ScreenState foi totalmente removido do WatchState (If1393).
  • O nível mínimo de API para o mostrador do relógio agora é 25. A compatibilidade com tela de hardware exige o nível de API 26 ou mais recente (Ic9bbd).
  • InteractiveWatchFaceWcsClient agora tem um auxiliar getComplicationIdAt (I05811).
  • O nível de API para wear-watchface-client foi reduzido para 25. No entanto, as APIs de captura de tela exigem o nível 27 (Id31c2).

Correções de bugs

  • Agora expomos o ComplicationType atual da ComplicationData da complicação em ComplicationState (I9b390).
  • InteractiveWatchFaceWcs agora tem um método `bringAttentionToComplication para destacar brevemente a complicação especificada (I6d31c).
  • InteractiveWatchFaceWcsClient#setUserStyle agora tem uma sobrecarga que aceita Map, o que pode evitar mais uma ida e volta na IPC necessária para construir UserStyle (I24eec).

Versão 1.0.0-alpha03

2 de dezembro de 2020

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

Novos recursos

A classe Complication agora tem uma propriedade compicationData, permitindo que mostradores de relógio observem mudanças em ComplicationData. Isso permite mudar as dimensões da complicação com base no tipo dela.

Agora, os frame rates variáveis são compatíveis com a atribuição ao Renderer.interactiveDrawModeUpdateDelayMillis. Para mostradores de relógio que executam animações curtas a cada segundo, isso pode gerar uma boa economia de energia no modo suspenso, quando eles não estiverem com animações.

Mudanças na API

  • BACKGROUND_IMAGE foi renomeado como PHOTO_IMAGE de acordo com as classes relacionadas. Esse tipo de complicação não é usado exclusivamente em segundo plano. Por isso, o nome foi mudado (I995c6).
  • DefaultComplicationProviderPolicy anotado corretamente com IntDefs (I3b431).
  • A classe oculta TimeDependentText não é mais exposta por ContentDescriptionLabel. Em vez disso, adicionamos um acessador para receber o texto em um horário especificado (Ica692).
  • O construtor do ObservableWatchData agora é interno (I30121, b/173802666).
  • Complication agora tem ComplicationData, permitindo que mostradores de relógio observem mudanças em ComplicationData. Complication também tem uma nova chamada isActiveAt, que pode ser usada para saber se algo precisa ser renderizado na data e hora informadas (Ic0e2a).
  • O SharedMemoryImage vazio não está mais na API pública (I7ee17).
  • WatchFace.overridePreviewReferenceTimeMillis agora tem uma anotação IntRange, e o getter e o setter têm nomes consistentes (Ia5f78).
  • Complication.Builder agora é criado via Complication.createRoundRectComplicationBuilder ou Complication.createBackgroundComplicationBuilder para maior clareza (I54063).
  • Adição de WatchFace.TapListener, que permite que toques não consumidos por complicações sejam observados pelo WatchFace (Ic2fe1, b/172721168).
  • O WatchFace agora é compatível com frame rates variáveis atribuindo a Renderer.interactiveDrawModeUpdateDelayMillis. Isso pode ajudar a preservar a duração da bateria no modo suspenso, quando não houver animações (I707c9).
  • WatchFace.Builder não é mais necessário, e invalid() e interactiveUpdateRateMillis foram movidos para o Renderer (I329ea).
  • Para melhoria na interoperabilidade do Java, os getters foram renomeados para propriedades booleanas no WatchState (I6d2f1).
  • Renomeação de TapListener como TapCallback e InvalidateCallback como InvalidateListener para consistência (I9414e).
  • As opções de estilo do mostrador do relógio do Wear 2.0 foram movidas para a própria classe, para maior clareza. Os setters WatchFace.Builder agora têm getters simétricos da classe WatchFace (Iefdfc).
  • Adição de InteractiveWatchFaceWcsClient e WatchFaceControlClient.getOrCreateWallpaperServiceBackedInteractiveWatchFaceWcsClient, que recebem uma instância existente ou a criam assim que o serviço de plano de fundo se conecta e produz o mecanismo (Id666e).
  • WatchFaceControlClient agora é uma interface para permitir a simulação de testes (I875d9).
  • HeadlessWatchFaceClient, InteractiveWatchFaceSysUiClientImpl e InteractiveWatchFaceWcsClient agora são interfaces para facilitar os testes (I7cdc3).
  • Adição de anotações aos métodos em wear-watchface-complications-rendering (I0d65c).

Correções de bugs

  • Remoção do formato de tela do DeviceConfig, que estava duplicando android.content.res.Configuration#isScreenRound() (Ifadf4).
  • Mudança de WatchFaceControlClient.getOrCreateWallpaperServiceBackedInteractiveWatchFaceWcsClient para aceitar um Map<String, String> em vez de UserStyle, porque é difícil criar um UserStyle sem conhecer o esquema, que só é possível receber depois que o cliente é criado (Iea02a).
  • Correção de InteractiveWatchFaceWcsClient para usar ComplicationState em vez do formato de condutor (Icb8a4).
  • UserStyleSettings agora é uma classe selada porque os editores de mostradores de relógio só entendem as classes integradas (I2d797).

Versão 1.0.0-alpha02

11 de novembro de 2020

androidx.wear:wear-*:1.0.0-alpha02 é lançado. A versão 1.0.0-alpha02 contém estas confirmações.

Mudanças na API

  • O ComplicationDetails agora é chamado de ComplicationState e está adequadamente encapsulado. Os usos da compatibilidade do wearable com @ComplicationData.ComplicationType foram migrados para o ComplicationType do androidx (I4dd36).
  • Adição de um parâmetro highlightedComplicationId opcional a RenderParameters, que permite solicitar o destaque de uma única complicação nas capturas de tela (I66ce9).
  • O ComplicationProviderService usará a nova API de complicação de estilo para consistência (Id5aea).
  • getPreviewReferenceTimeMillis agora recebe tempos de referência de DeviceConfig (I779fe).
  • Simplificação da plataforma da API Renderer. Agora, o SurfaceHolder.Callback pode ser usado para observar as mudanças (I210db).
  • O CanvasComplicationRenderer não é uma extensão do Renderer. Renomeando para maior clareza (Ibe880).

Correções de bugs

  • Primeira versão de androidx.wear:wear-watchface-client (I1e35e).
  • Mudança do nome de GlesTextureComplication#renderer para maior clareza (Ibb78f7).
  • Renomeação de StyleCategory como StyleSetting para maior clareza (I488c7).
  • Adição de UserStyleSchema para uma API mais limpa (If36f8).

Versão 1.0.0-alpha01

28 de outubro de 2020

Lançamento de androidx.wear:wear-complications-*:1.0.0-alpha01 e androidx.wear:wear-watchface-*:1.0.0-alpha01. A versão 1.0.0-alpha01 contém estas confirmações.

Mudanças na API

  • Remoção de alguns itens que não pretendíamos expor na API pública (I41669).
  • Criação da biblioteca androidx.wear:wear-complications-provider (I77f1f).
  • ComplicationsUserStyleCategory é a nova categoria recomendada para configurar complicações (I96909).
  • Adição da API wear-complication-data (I7c268).
  • As funções com valores de retorno booleanos serão prefixadas com "is" em vez de "get" (If36ff).
  • A recomendação da API é evitar o uso protegido, de modo que essa classe tenha sido refatorada para receber parâmetros pelo construtor (I61644).
  • Renomeação de setBackgroundComplication para maior clareza (I96fe3).
  • Uso de propriedades Kotlin para dados e isHighlighted do ComplicationDrawable (I4dcc8).
  • Em vez de ComplicationRenderer.InvalidateCallback, adicionamos Complication#invalidate() (I4f4c6).
  • Essas APIs terão o uso suspenso em WearableSupport e serão removidas aqui (Ib425c).
  • Alguns métodos do builder WatchFace foram renomeados para enfatizar a natureza de legado do Wear 2.0 (Idb775).
  • Primeira candidata de API Beta para wear/wear-watchface (Id3981).
  • Primeira versão rastreada da API (Ie9fe6).
  • ComplicationDrawable.BorderStyle IntDef foi adequadamente ocultado e movido para ComplicationStyle para consistência (I27f7a).
  • Adição de anotações ausentes para métodos ComplicationStyle (I838fd).
  • Esta biblioteca não tem plataforma de API pública (I88e2b).
  • Todas as classes Option de categoria de estilo agora são adequadamente finais (Ib8323).
  • Primeira versão rastreada da API (I27c85).

Correções de bugs

  • Mudança de ComplicationProviderService para ter um método getComplicationPreviewData explícito (I4905f).
  • A verificação de lint da API para MissingGetterMatchingBuilder está ativada para androidx (I4bbea, b/138602561).
  • Renomeação de wear-complications-rendering (Ifea02).
  • Os nomes de exibição da categoria de estilo agora são CharSequences (I28990).
  • Troca de "Substituir" por "Sobrepor" para corresponder às convenções de nomenclatura de temas e estilos atuais (I4fde9).
  • Renomeação de UserStyle#getOptions para maior clareza (I695b6).

Versão 1.2.0

Versão 1.2.0-alpha11

30 de junho de 2021

Lançamento de androidx.wear:wear:1.2.0-alpha11. A versão 1.2.0-alpha11 contém essas confirmações.

Correções de bugs

  • Correção do bug em que os RecyclerViews rolando horizontalmente faziam com que WearableDrawerLayout exibisse todas as interações (I24c7f).

Versão 1.2.0-alpha10

2 de junho de 2021

Lançamento de androidx.wear:wear:1.2.0-alpha10. A versão 1.2.0-alpha10 contém estas confirmações.

Novos recursos

  • A versão alpha10 aprimora a compatibilidade com acessibilidade em texto curvo e em ArcLayouts. Ela também adiciona algumas pequenas renomeações no DismissibleFrameLayout para ajudar a esclarecer a API.

Mudanças na API

  • Renomeamos os seguintes métodos no DismissibleFrameLayout (Ib195e):
    • Callback#onDismissed -> Callback#onDismissedFinished
    • isSwipeDismissible -> isDismissableBySwipe
    • isBackButtonDismissible -> isDismissableByBackButton
  • Os seguintes métodos foram definidos como finais (Ib195e):
    • setBackButtonDismissible
    • setSwipeDismissible
    • registerCallback
    • unregisterCallback

Correções de bugs

  • Usa o conteúdo de CurvedTextView no Talkback (I05798).
  • Melhor acessibilidade para visualizações normais em um ArcLayout (I4418d).

Versão 1.2.0-alpha09

18 de maio de 2021

Lançamento de androidx.wear:wear:1.2.0-alpha09. A versão 1.2.0-alpha09 contém estas confirmações.

Mudanças na API

  • Foi acrescentada uma nova função CurvedTextView.setTypeface() (semelhante à TextView) para definir a fonte do texto e o estilo negrito/itálico (I4653c).
  • O WearArcLayout foi renomeado como ArcLayout, o WearCurvedText como CurvedText e o WearArcLayout.ArcLayoutWidget como ArcLayout.Widget (I6e5ce).
    • No ArcLayout.Widget, o getThicknessPx foi renomeado como getThickness.
    • As constantes de alinhamento vertical no ArcLayout.LayoutParams agora são nomeadas começando com VERTICAL_ALIGN_ (em vez de VALIGN_, como antes).
  • Na CurvedTextView, os métodos setMinSweepDegrees e setMaxSweepDegrees foram substituídos pelo setSweepRangeDegrees (I7a9d9).

Versão 1.2.0-alpha08

5 de maio de 2021

Lançamento de androidx.wear:wear:1.2.0-alpha08. A versão 1.2.0-alpha08 contém estas confirmações.

Mudanças na API

  • Para melhorar a clareza do código, adicionamos anotações @FloatRange a alguns parâmetros angulares e tipos de retorno. (I430dd)
  • Na interface WearArcLayout.ArcLayoutWidget, o método insideClickArea agora é chamado de isPointInsideClickArea. (Ia7307)

Versão 1.2.0-alpha07

24 de março de 2021

Lançamento de androidx.wear:wear:1.2.0-alpha07. A versão 1.2.0-alpha07 contém estas confirmações.

Correções de bugs

  • Correção de erros com filhos não curvados dentro do WearArcLayout causados pelo uso do tamanho da tela com altura maior que largura. Agora, esses filhos não curvados são posicionados corretamente dentro de um arco em todos os tipos de tela.

Versão 1.2.0-alpha06

27 de janeiro de 2021

Lançamento de androidx.wear:wear:1.2.0-alpha06. A versão 1.2.0-alpha06 contém estas confirmações.

Mudanças na API

  • Migração da biblioteca Ongoing Activities para uma nova sub-biblioteca: wear-ongoing. As classes agora ficam no pacote androidx.wear.ongoing (antes chamado de androidx.wear.ongoingactivities) (I7c029).
  • Migração da classe WearableCalendarContract da Biblioteca de Suporte de Wearables para AndroidX. Essa API fornece um subconjunto dos dados disponíveis pelo CalendarContract, mas é automaticamente sincronizada com os dispositivos wearable (I6f2d7).

Correções de bugs

  • Desativação, por padrão, do recurso de dispensar do botão "Voltar" no Dismissible FrameLayout, já que o recurso de deslizar para dispensar continua sendo a principal maneira de voltar para uma tela cheia em dispositivos wearable (Ic24e3).
  • Correção de alguns problemas no processamento da visibilidade de filhos no WearArcLayout (Icf912).

Versão 1.2.0-alpha05

13 de janeiro de 2021

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

Correções de bugs

  • Atualização do javadoc da classe AmbientModeSupport para fornecer snippets de amostra que demonstrem melhor o uso geral dessa classe.

Versão 1.2.0-alpha04

16 de dezembro de 2020

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

Mudanças na API

  • Adição de compatibilidade para indicar que uma Activity pode ser "retomada automaticamente" quando o dispositivo sai do modo ambiente na classe AmbientModeSupport. Essa funcionalidade estava disponível anteriormente na classe WearableActivity obsoleta da WearableSupportLibrary (I336ab).
  • OngoingActivity
    • Agora, a categoria pode ser definida ao criar uma OngoingActivity, por exemplo, OngoingActivitiy.Builder.getCategory(String).
    • OngoingActivityData agora tem um carimbo de data/hora de quando a OngoingActivity foi criada: OngoingActivityData.getTimestamp()
    • (I91cb4).
  • Adição de compatibilidade com a definição de margens em filhos do WearArcLayout mudando os parâmetros de layout para estender MarginLayoutParams, ou seja, WearArcLayout.LayoutParams estende android.view.ViewGroup.MarginLayoutParams (I2cd88).
  • Mudança no tipo de âncora do WearCurvedTextView padrão para WearArcLayout.ANCHOR_CENTER (era WearArcLayout.ANCHOR_START). Isso simplifica o contrato entre o layout do arco e o texto curvo, porque o texto curvo desenha-se por padrão centrado em X no topo e o layout do arco pai pode girar para onde ele precisar estar (I105ff).

Versão 1.2.0-alpha03

2 de dezembro de 2020

Lançamento de androidx.wear:wear:1.2.0-alpha03. A versão 1.2.0-alpha03 contém estas confirmações.

Novos recursos

Um novo contêiner de layout DismissableFrameLayout, que lida com o botão "Voltar" para dispensar e/ou deslizar para dispensar, para ser usado em uma atividade. Pelo menos um listener precisa ser adicionado para atuar em uma ação de dispensar. Um listener geralmente remove uma visualização ou um fragmento da atividade atual. setSwipeDismissable(boolean) e setBackButtonDismissable(boolean) são fornecidos para controle direto sobre os recursos. Esse novo layout é destinado a substituir o SwipeDismissFrameLayout existente.

Os widgets curvos agora processam eventos de toque. Os widgets normais de um WearArcLayout receberão todos os eventos de toque, mapeados para o próprio espaço de coordenadas. WearCurveTextView, dentro de um WearArcLayout ou não, pode definir gerenciadores onClick e onLongClick.

As classes de atividades contínuas agora são VersionedParcelables em vez de usar serialização/desserialização personalizada. O ícone estático e a intent de toque agora são necessários.

Mudanças na API

  • O atributo "sweepDegrees" para WearCurvedTextView é separado em minSweepDegrees e maxSweepDegrees para fornecer um layout mais flexível desse widget.

Versão 1.2.0-alpha02

11 de novembro de 2020

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

Esta versão adiciona uma nova API Ongoing Activities pela primeira vez. Os desenvolvedores podem usar essa API para sinalizar que uma atividade de longa duração está em andamento, como um exercício físico ou uma sessão de reprodução de mídia. Ela permite que os desenvolvedores forneçam atualizações de status periódicas, como "distância e tempo decorrido" ou "faixa em reprodução", para exibição no mostrador do relógio ou na tela de início. Essa funcionalidade é voltada a dispositivos futuros com a funcionalidade de atividade contínua ativada.

Mudanças na API

  • Nova API para atividades contínuas, que é um ambiente autônomo em "dispositivos não compatíveis" (I69a31).

Versão 1.2.0-alpha01

28 de outubro de 2020

Lançamento de androidx.wear:wear:1.2.0-alpha01. A versão 1.2.0-alpha01 contém estas confirmações.

Novos recursos

  • Adição do componente WearCurvedTextView para facilitar a escrita seguindo a curvatura do maior círculo que pode ser inscrito na visualização. Um exemplo de uso:
<androidx.wear.widget.WearCurvedTextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="example curved text"
        app:anchorAngleDegrees="180"
        app:anchorPosition="center"
        app:clockwise="false"
        style="@android:style/TextAppearance.Large"
/>

Exemplo de texto curvo no Android Wear

  • Adição do contêiner WearArcLayout para definir o layout dos elementos filhos, um por um, em um arco no sentido horário ou anti-horário. Os filhos podem ser widgets Android padrão ou widgets "curvos" que implementam a interface ArcLayoutWidget. Um exemplo de uso:
<androidx.wear.widget.WearArcLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:anchorPosition="center">
      <ImageView
              android:layout_width="20dp"
              android:layout_height="20dp"
              android:src="@drawable/ic_launcher"
      />
      <androidx.wear.widget.WearCurvedTextView
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:text="Curved Text"
              style="@android:style/TextAppearance.Small"
              android:padding="2dp"
       />
  </androidx.wear.widget.WearArcLayout>

Exemplo de texto em arco no Android Wear

(I536da).

Wear-Input 1.1.0

Versão 1.1.0-alpha03

30 de junho de 2021

Lançamento de androidx.wear:wear-input:1.1.0-alpha03 e androidx.wear:wear-input-testing:1.1.0-alpha03. A versão 1.1.0-alpha03 contém estas confirmações.

Correções de bugs

  • Correção do bug que fazia com que intents da RemoteInput, que tivessem RemoteInputs adicionados a elas via RemoteInputHelper.putRemoteInputsExtra, fossem rejeitadas.

Versão 1.1.0-alpha02

18 de maio de 2021

Lançamento de androidx.wear:wear-input:1.1.0-alpha02 e androidx.wear:wear-input-testing:1.1.0-alpha02. A versão 1.1.0-alpha02 contém estas confirmações.

Mudanças na API

  • Os métodos do RemoteInputIntentHelper usados para receber ou inserir extras que representam os rótulos de título, cancelamento, confirmação e em andamento agora usam a CharSequence em vez da String para esses rótulos (I0e71f).

Versão 1.1.0-alpha01

27 de janeiro de 2021

Lançamento de androidx.wear:wear-input:1.1.0-alpha01 e androidx.wear:wear-input-testing:1.1.0-alpha01. A versão 1.1.0-alpha01 contém estas confirmações.

Mudanças na API

  • Migração da classe RemoteInputIntent da Biblioteca de Suporte de Wearables para AndroidX. A classe migrada é renomeada como RemoteInputIntentHelper, que oferece funções auxiliares para compatibilidade com entradas remotas ao iniciar uma intent (I47cee).

Wear-Input 1.0.0

Versão 1.0.0

2 de dezembro de 2020

Lançamento de androidx.wear:wear-input:1.0.0 e androidx.wear:wear-input-testing:1.0.0. A versão 1.0.0 contém estas confirmações.

Essa versão é idêntica a 1.0.0-rc01.

Principais recursos de 1.0.0

  • Migração da funcionalidade WearableButtons da Biblioteca de Suporte de Wearables para o Jetpack.

  • Adição de androidx.wear.input.test.TestWearableButtonsProvider, que implementa androidx.wear.input.WearableButtonsProvider para ajudar aplicativos de teste desenvolvidos com a biblioteca androidx.wear:wear-input

Versão 1.0.0-rc01

11 de novembro de 2020

Lançamento de androidx.wear:wear-input:1.0.0-rc01 e androidx.wear:wear-input-testing:1.0.0-rc01. A versão 1.0.0-rc01 contém estas confirmações.

Essa versão é idêntica à 1.0.0-beta01.

Versão 1.0.0-beta01

28 de outubro de 2020

Lançamento de androidx.wear:wear-input:1.0.0-beta01 e androidx.wear:wear-input-testing:1.0.0-beta01, sem mudanças desde a 1.1.0-alpha01. A versão 1.0.0-beta01 contém estas confirmações.

Wear-Input-Testing versão 1.0.0-alpha01

14 de outubro de 2020

Lançamento de androidx.wear:wear-input-testing:1.0.0-alpha01. A versão 1.0.0-alpha01 contém estas confirmações.

Mudanças na API

  • Adição de androidx.wear.input.test.TestWearableButtonsProvider, que implementa androidx.wear.input.WearableButtonsProvider para ajudar aplicativos de teste desenvolvidos com a biblioteca androidx.wear:wear-input (I0ed0c).

Wear-Input versão 1.0.0-alpha01

2 de setembro de 2020

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

Novos recursos

Migração da funcionalidade WearableButtons da Biblioteca de Suporte de Wearables para o Jetpack. Será oferecida maior compatibilidade com testes na biblioteca androidx.wear:wear-input-testing na próxima versão do Jetpack.

Versão 1.1.0

Versão 1.1.0

14 de outubro de 2020

Lançamento de androidx.wear:wear:1.1.0. A versão 1.1.0 contém estas confirmações.

Principais mudanças desde a versão 1.0.0

  • Adição de um prefixo layout_ ao atributo boxedEdges (agora layout_BoxedEdges) para BoxInsetLayout para obedecer à convenção de nomenclatura do Android. Isso removerá o erro de linter no Android Studio para esses atributos (I4272f).
  • Adição de EXTRA_ANIMATION_DURATION_MILLIS opcional a ConfirmationActivity para permitir a duração de exibição da caixa de diálogo de confirmação (adb83ce, b/143356547).
  • Atualização de WearableActionDrawView para atrasar a inflação da gaveta de ação até que ela seja aberta pela primeira vez (I01026, b/163870541).

Versão 1.1.0-rc03

2 de setembro de 2020

Lançamento de androidx.wear:wear:1.1.0-rc03. A versão 1.1.0-rc03 contém estas confirmações.

Correções de bugs

  • Foi corrigido o problema em que a gaveta de ação não mostrava o conteúdo quando aberta (I01026, b/163870541).

Versão 1.1.0-rc02

24 de junho de 2020

Lançamento de androidx.wear:wear:1.1.0-rc02. A versão 1.0.0-rc02 contém essas confirmações (link em inglês).

Correções de bugs

  • Adição de um prefixo layout_ ao atributo boxedEdges (agora layout_boxedEdges) para BoxInsetLayout para obedecer à convenção de nomenclatura do Android. Isso removerá o erro de linter no Android Studio para esses atributos.

Versão 1.1.0-rc01

14 de maio de 2020

androidx.wear:wear:1.1.0-rc01 é lançado sem mudanças desde .1.0-beta01. A versão 1.1.0-rc01 contém estas confirmações.

Versão 1.1.0-beta01

29 de abril de 2020

androidx.wear:wear:1.1.0-beta01 é lançado sem mudanças desde androidx.wear:wear:1.1.0-alpha01. A versão 1.3.0-beta01 contém estas confirmações.

Versão 1.1.0-alpha01

15 de abril de 2020

androidx.wear:wear:1.1.0-alpha01 é lançado. A versão 1.1.0-alpha01 contém estas confirmações.

Mudanças na API

  • Adição de EXTRA_ANIMATION_DURATION_MILLIS opcional a ConfirmationActivity para permitir a duração de exibição da caixa de diálogo de confirmação (adb83ce, 134523c, b/143356547).

Correções de bugs

  • Atualização de WearableActionDrawView para atrasar a inflação da gaveta de ação até que ela seja aberta pela primeira vez (5cd32f7).