DefaultTileClient

public final class DefaultTileClient implements TileClient


Implementation of TileClient which can connect to a TileService in either the local process, or in a remote app.

This implementation will only stay connected for as long as required. Each call will cause this client to connect to the TileService, and call the specified remote method. It will then disconnect again after one second of inactivity (so calls in quick succession will share the same binder).

Note that there is a timeout of 10s when connecting to the TileService, and a timeout of 30s for requestTile and requestResources to return a payload.

Summary

Public constructors

DefaultTileClient(
    @NonNull Context context,
    @NonNull ComponentName componentName,
    @NonNull Executor executor
)

Build an instance of DefaultTileClient for use with a given Executor.

DefaultTileClient(
    @NonNull Context context,
    @NonNull ComponentName componentName,
    @NonNull CoroutineScope coroutineScope,
    @NonNull CoroutineDispatcher coroutineDispatcher
)

Build an instance of DefaultTileClient for use with a coroutine dispatcher.

Public methods

@NonNull ListenableFuture<@NonNull Integer>

Gets the API version supported by the connected TileService.

@NonNull ListenableFuture<@NonNull ResourceBuilders.Resources>

Request a resource bundle from the connected TileService.

@NonNull ListenableFuture<@NonNull TileBuilders.Tile>

Request a tile payload from the connected TileService.

@NonNull ListenableFuture<@NonNull Void>

Send a Tile Added notification to the connected TileService.

@NonNull ListenableFuture<@NonNull Void>

Send a Tile Enter notification to the connected TileService.

@NonNull ListenableFuture<@NonNull Void>

Send a Tile Leave notification to the connected TileService.

@NonNull ListenableFuture<@NonNull Void>

Send a Tile Removed notification to the connected TileService.

Public constructors

DefaultTileClient

public final DefaultTileClient(
    @NonNull Context context,
    @NonNull ComponentName componentName,
    @NonNull Executor executor
)

Build an instance of DefaultTileClient for use with a given Executor.

Parameters
@NonNull Context context

The application context to use when binding to the TileService.

@NonNull ComponentName componentName

The ComponentName of the TileService to bind to.

@NonNull Executor executor

An Executor to use when dispatching calls to the TileService.

DefaultTileClient

public final DefaultTileClient(
    @NonNull Context context,
    @NonNull ComponentName componentName,
    @NonNull CoroutineScope coroutineScope,
    @NonNull CoroutineDispatcher coroutineDispatcher
)

Build an instance of DefaultTileClient for use with a coroutine dispatcher.

Parameters
@NonNull Context context

The application context to use when binding to the TileService.

@NonNull ComponentName componentName

The ComponentName of the TileService to bind to.

@NonNull CoroutineScope coroutineScope

A CoroutineScope to use when dispatching calls to the TileService. Cancelling the passed CoroutineScope will also cancel any pending work in this class.

@NonNull CoroutineDispatcher coroutineDispatcher

A CoroutineDispatcher to use when dispatching work from this class.

Public methods

requestApiVersion

@NonNull
public ListenableFuture<@NonNull IntegerrequestApiVersion()

Gets the API version supported by the connected TileService.

requestResources

@NonNull
public ListenableFuture<@NonNull ResourceBuilders.ResourcesrequestResources(
    @NonNull RequestBuilders.ResourcesRequest requestParams
)

Request a resource bundle from the connected TileService.