Personalizar o app de referência

Esta seção detalha como personalizar o app de referência do Control Center e a interface.

Fluxos e interface do usuário

Esta seção descreve os fluxos de usuários e como iniciar o Control Center.

Abrir a Central de controle

Você pode iniciar a Central de Controle pelo Acesso rápido de apps ou um ícone na barra de navegação da interface do sistema. O ícone aparece apenas em builds que ativaram usuários visíveis em segundo plano. Para saber mais, consulte UserHandleAware.

Você pode acessar a Central de controle a qualquer momento. A Central de Controle consiste em uma combinação de janelas translúcidas e planos de fundo transparentes para que ela possa aparecer sobre qualquer outro app, incluindo vídeos e mídia em reprodução ativa. Na página de destino do app:

  • A organização da tela e o uso de telas local e remota.
  • As telas preenchidas com mídia e controles de mídia.
  • Como cada tela apresenta uma visualização detalhada dos controles de mídia (e muito mais).

A disposição das telas representa o layout delas no veículo. Cada tela é um DevicePickerScreen. Para personalizar a localização e o tamanho de cada tela, use uma sobreposição de recursos de tempo de execução (RRO, na sigla em inglês). Para saber mais, consulte Mudar o valor dos recursos de um app no momento da execução.

Para cada tela em que a Central de controle está aberta, uma tela diferente com uma borda brilhante destacada é mostrada. Esta é a tela local, o display em uso.

Todas as outras telas são remotas para representar um display diferente no carro, que pode ser identificado com base na disposição das telas no Fragment. Para calcular o número total de zonas de ocupantes configuradas no veículo, use CarOccupantZoneManager#getAllOccupantZones.

Cada tela define um atributo personalizado controlcenter:occupantZoneId para associar dados à respectiva zona de ocupação. Quando um app de mídia é reproduzido em uma tela específica, a tela correspondente mostra a arte do álbum. Um botão Reproduzir (ou Pausar) é mostrado abaixo da tela.

Se o app de mídia ativo for uma tarefa visível (aberta atrás da Central de Controle), um botão Compartilhar localizado ao lado do botão Tocar será ativado para abrir a página de espelhamento. Com o Compartilhar, você pode compartilhar a exibição do app de mídia, o que é mais útil para apps de mídia com vídeo.

Elementos da tela

Ao tocar na tela, uma visualização detalhada da mídia em reprodução é mostrada. Essa é a tela de detalhes. A visualização mostra metadados de mídia, como título, progresso da reprodução e artista. Esses botões oferecem mais controle da zona de ocupação.

  • Saída de áudio mostra qual saída de áudio está reproduzindo a mídia, como alto-falantes da cabine ou fones de ouvido. Saída de áudio abre uma caixa de diálogo para mudar a saída de áudio e o volume da mídia.

  • O bloqueio de entrada da tela bloqueia a entrada na tela. Essa operação não pode ser aplicada à tela do motorista.

  • O Display Power desativa a energia da tela. Essa operação não pode ser aplicada à tela do motorista.

A visualização Detalhes mostra um botão Compartilhar para ser tocado quando a mídia é uma tarefa visível por trás do app Central de Controle. Compartilhar abre a página de espelhamento:

Jornada de espelhamento e coassistência entre o remetente (acima) e o destinatário (abaixo)
Figura 2. Página de espelhamento e jornada de assistir juntos entre o remetente (acima) e o destinatário (abaixo).

Iniciar uma sessão de assistir em grupo

A página espelhada é semelhante à página de destino, usando um RRO.

Para adicionar uma tela ao co-assistir, toque na tela e em Concluído.

Isso abre um Mirroring Activity que hospeda o app compartilhado e fornece controles flutuantes e temporários para sair da sessão de coassistir ou voltar à página de espelhamento para adicionar ou remover participantes.

Espelhamento de atividade mostrando um app compartilhado com controles flutuantes para gerenciar a sessão de assistir em grupo.
Figura 3. Atividade de espelhamento com controles flutuantes temporários.

Resumo

Confira um resumo das diferentes páginas na Central de controle.

Fluxograma mostrando as diferentes páginas e transições no app Central de Controle.
Figura 4. Páginas da Central de controle.

Diretrizes de personalização

A Central de controle usa a biblioteca Car UI para permitir a personalização e oferece um tema e uma estrutura básicos que podem ser adotados como estão ou modificados de acordo com essas restrições.

Personalização Descrição
SHOULD

Ajuste o tema e o estilo gerais usando um RRO, como:

  • Paleta de cores
  • Dimensionamento
  • Aparência do texto
  • Aparência da caixa de diálogo
  • Drawables
  • Valores de configuração
MAIO Modificar a estrutura de UI de alto nível da Central de controle.

A Central de controle pertence a um pacote de apps do sistema, que inclui Mídia, Central de notificações e Iniciador de apps. Esses apps compartilham estilos e recursos definidos em diferentes níveis da estrutura do AOSP:

framework/base/core
Todos os estilos básicos do Android são definidos aqui. Especificamente, todos os temas de apps do sistema são baseados no Theme.DeviceDefault, o tema projetado para uso por OEMs para personalizar a aparência padrão do dispositivo.

packages/services/Car/car_product/overlay:
Essa pasta contém substituições de Theme.DeviceDefault usadas para produzir a aparência do AOSP no Android Automotive. Os OEMs podem optar por excluir essa sobreposição e usar a própria.

packages/apps/Car/libs/car-ui-lib:
Essa biblioteca define componentes e recursos do AAOS comuns a apps do sistema e apps desagrupados projetados para personalização. Para mais detalhes, consulte o Guia de integração da biblioteca Car UI.

packages/apps/Car/libs/car-apps-common:
Cores e estilos comuns compartilhados entre apps do sistema fornecidos pelo AOSP. Você pode usar sobreposições para personalizar esses elementos (semelhante a packages/services/Car/car_product/overlay).

packages/apps/Car/MultiDisplay/ControlCenter:
Todos os apps do sistema têm um tema que se estende de Theme.CarUi e é definido em car-ui-lib. ControlCenterActivity usa Theme.Transparent personalizados, que estendem Theme.CarUi.

Para oferecer suporte a um fluxo (como assistir em conjunto, que exige que a tarefa espelhada esteja visível), a Central de controle usa uma combinação de janelas translúcidas e planos de fundo transparentes que não enviam o app para segundo plano nem enviam Lifecycle events.

<style name="Theme.Transparent" parent="@style/Theme.CarUi.NoToolbar">
        <item name="android:windowIsTranslucent">true</item>
        <item name="android:windowBackground">@color/transparent</item>
</style>