Visualizar blocos do Wear OS no Android Studio

A partir da atualização de recursos do Android Studio Koala, é possível conferir snapshots dos blocos do app para Wear OS. Esse painel é particularmente útil se a aparência do Bloco mudar em resposta a condições, como conteúdo diferente dependendo do tamanho da tela do dispositivo ou um evento esportivo chegando ao intervalo.

Os nomes dos grupos no painel de visualização correspondem ao nome do grupo indicado na
    anotação de visualização
Painel de visualização de blocos no Android Studio.

Adicionar dependências

Inclua as seguintes dependências no arquivo build.gradle.kts ou build.gradle do seu app:

dependencies {
    implementation("androidx.wear.tiles:tiles-tooling-preview:1.4.0-beta01")
    debugImplementation("androidx.wear.tiles:tiles-tooling:1.4.0-beta01")
    implementation("androidx.wear:wear-tooling-preview:1.0.0")
}

Configurar visualizações de blocos

Para conferir uma prévia da aparência do bloco em diferentes tamanhos de tela do Wear OS, adicione a anotação @Preview e transmita o parâmetro device. Essa anotação @Preview é de um pacote diferente daquele que você usa para visualizações de composição.

import androidx.wear.tiles.tooling.preview.Preview

@Preview(device = WearDevices.SMALL_ROUND)
@Preview(device = WearDevices.LARGE_ROUND)
fun tilePreview(context: Context) = TilePreviewData(
    onTileRequest = { request ->
        TilePreviewHelper.singleTimelineEntryTileBuilder(
            buildMyTileLayout()
        ).build()
    }
)

Adicionar e registrar recursos

Se o Bloco usar recursos do Android, você vai precisar registrá-los no parâmetro onTileResourceRequest de TilePreviewData, conforme mostrado no snippet de código abaixo:

import androidx.wear.tiles.tooling.preview.Preview

@Preview(device = WearDevices.SMALL_ROUND)
fun previewWithResources(context: Context) = TilePreviewData(
    onTileResourceRequest = { request ->
        ProtoResources.Builder()
            .setVersion(myResourcesVersion)
            .addIdToImageMapping(
                    myImageId, getImageById(R.drawable.myDrawableImageId))
            .build()
    },
    onTileRequest = { request ->
        TilePreviewHelper.singleTimelineEntryTileBuilder(
            buildMyTileLayout()
        ).build()
    }
)

Mostrar valores específicos das fontes de dados da plataforma

Se o bloco usar dados de plataforma, como frequência cardíaca, calorias, distância e passos, ele vai mostrar valores padrão para esses dados.

Para mostrar um valor específico, defina o parâmetro platformDataValues ao criar o objeto TilePreviewData, conforme mostrado no snippet de código a seguir:

import androidx.wear.tiles.tooling.preview.Preview

@Preview(device = WearDevices.SMALL_ROUND)
fun previewWithPlatformOverride(context: Context) = TilePreviewData(
    platformDataValues = PlatformDataValues.of(
        PlatformHealthSources.Keys.HEART_RATE_BPM,
        DynamicDataBuilders.DynamicDataValue.fromFloat(160f)
    ),
    onTileRequest = { request ->
        TilePreviewHelper.singleTimelineEntryTileBuilder(
            buildMyTileLayout()
        ).build()
    }
)